根据表中另一个现有列的内容更改 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 中的现有列的主要内容,如果未能解决你的问题,请参考以下文章

更新查询以根据另一表中的值更改一个表中列的现有值

如何根据火花DataFrame中另一列的值更改列的值

根据 s-s-rS 中另一列的值更改数字格式

基于sql中另一列的一列中的最大数据

更改增量表中列的数据类型

将一个表中的值链接到另一个表,并根据 sql 中另一个表中的列对一个表进行切片