如何将字段值的一部分存储在 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
所以我试图从列中获取值的一部分并将该部分插入到另一列 - 新列中。两列都在同一个 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