我正在尝试从同一表中名为 Product
的列更新列 Product_Group
。此 Product
列有两个条目,Simple
或 Others
。即在 Invoice
表中显示如下:
我遇到的问题是,如果您查看 Top_Level ID 10、19、21 和 31 有多个条目并且产品也有多个(即简单和其他)。
我想要实现的是,当我看到拥有 Simple 和 Others 的 Top_Level 然后将 Product_Group 列更新为“Simple/Other”
我怎样才能做到这一点?
最佳答案
如果您只有 2 个产品,那么您可以使用:
WITH cte AS (
SELECT Top_Level, COUNT(DISTINCT Product) AS cnt
FROM tab
GROUP BY Top_Level
)
UPDATE t
SET Product_group = CASE WHEN cnt = 1 THEN t.Product ELSE 'Others/Simple' END;
FROM tab t
JOIN cte ctab
ON c.Top_Level = t.Top_Level;
关于sql - 在 SQL Server 中使用具有两个条目(值)的同一个表中的另一列更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52688751/