如何将字段值的一部分存储在 SQL 中的另一列中

How to store part of a field value in another column in SQL

所以我试图从列中获取值的一部分并将该部分插入到另一列 - 新列中。两列都在同一个 table 中。所以我想要的应该是这个样子:

id      newColumn      oldColumn
1       12             123 some text
2       24             246 some text
....

我知道如何使用 SUBSTR 获得 12 和 24,但我如何在 table 中输入每一行的数据。我应该使用自连接还是其他方式?

不用加入,就是一个普通的UPDATE:

update tablename set newColumn = substring(oldColumn from 1 for 2)

substring是ANSISQL,一些dbms有substr等版本。

问题是你为什么要这样做?如果有人稍后将 oldColumn 更新为另一个值,您希望在 newColumn 中找到什么?也许您应该有一个视图,其中 newColumn 始终具有最新值?

首先,您必须使用以下命令添加新列:-

ALTER TABLE TAB_NAME
ADD COLUMN COL_NAME(VARCHAR(10));

之后执行这条命令:-

UPDAET TAB_NAME
SET COL_NAME = SUBSTRING(OLDCOLUMN, 1, 2);

我想这可能对你有帮助。

请养成始终指定您正在使用的数据库引擎的习惯...这有助于我们帮助您 - 我们可以提供更多相关的答案。

您可能要考虑使用计算列而不是再次存储信息。

在 SQL 服务器中你可以做这样的事情

ALTER TABLE YourTable
ADD new_column as SUBSTRING(old_column, 1, 2);

这样您就不需要插入或更新此列,它始终与原始列一致。您只需以通常的方式在 select 语句中使用它即可。

select new_column from YourTable