根据表中另一个现有列的内容更改 SQL Server 中的现有列
Posted
技术标签:
【中文标题】根据表中另一个现有列的内容更改 SQL Server 中的现有列【英文标题】:Alter an Existing Column in SQL Server based on the contents of another existing column in the table 【发布时间】:2021-01-06 16:15:09 【问题描述】:我正在尝试根据同一个表中另一列的内容来更改 SQL Server 中现有列的内容。如果下面描述的情况都不适用,我希望保留该列中的一些数据要更新。
到目前为止,我已将以下陈述拼凑在一起,但显然遗漏了很多东西。
Select 'Postal Code', 'Packaging Code',
From [Clean Report]
Alter Table [Clean Report]
CASE
when [Postal Code, Clean Report] = '55419-4709'
then [Packaging Code, Clean Report] = '079111123'
Else
when [Postal Code, Clean Report] = '80222'
then [Packaging Code, Clean Report] = '809088899'
Else (Leave what was already populated in 'Packaging Code, Clean Report Column'
因此,理想情况下,对于上述特定情况,我最终会得到两个硬编码值,然后保留已填充到上述情况不适用的 [Packaging Code] 列中的数据。
非常感谢任何帮助!
【问题讨论】:
要更改数据,请使用update
,而不是alter table
。
【参考方案1】:
如果您只需要更新两个值,您可以尝试以下查询:
UPDATE [Clean Report]
SET [Packaging Code] = '079111123'
WHERE
[Postal Code] = '55419-4709';
UPDATE [Clean Report]
SET [Packaging Code] = '809088899'
WHERE
[Postal Code] = '80222';
您可以在以下fiddle查看。
【讨论】:
以上是关于根据表中另一个现有列的内容更改 SQL Server 中的现有列的主要内容,如果未能解决你的问题,请参考以下文章