【发布时间】:2019-07-05 05:33:42
【问题描述】:
我有一个包含 3 列数据的表格。
ID | Col1 | Col2 | Status
1 8007590006 8002240001,8002170828 I
2 8002170828 8002000004 I
3 8002000001 8002240001 I
4 8769879809 8002000001 I
5 8769879809 8002000001 I
Col2 可以包含多个逗号分隔的值。如果col2 中的值也存在于col1 中,我需要将状态更新为C。
例如,对于ID = 1,col2 包含存在于Col1、ID = 2 中的8002170828。所以,状态 = 'C'
根据我的尝试,我知道它在有多个值的情况下不起作用,因为我需要拆分该数据并获取单个值然后应用更新。
UPDATE Table1
SET STATUS = 'C'
WHERE Col1 IN (SELECT Col2 FROM Table1)
【问题讨论】:
-
Col2中的 CSV 值是否可以超过两个? -
@tim 我想是的 - 他说 Col2 可以包含多个逗号分隔的值
-
@geek 请问什么版本的sql server?交叉应用字符串拆分将使这变得轻而易举,但仅在 2016+ 中可用
-
@TimBiegeleisen 是的。它可以包含多个值。 1 或 2 或 3 或任何数字。未修复。
-
@CaiusJard 我正在使用 2014 年
标签: sql sql-server tsql split