Asw*_*yan 5 database sql-server azure-sql-database azure-sql-server
我有一个逗号分隔值,就像1,2,3,4我的SQL Server数据库中的表中的一列.我想替换逗号分隔字符串中的特定值.即,1,2,3我必须用5替换1和用6替换2.预期的输出是5,6,3.
我将在多行中获得值1和2.所以我需要在所有行中更新它.我有一个表,其中包含要更新的新值(即5 and 6).
简而言之,我有一个表在其中一列中有逗号分隔值,我有另一个包含新值的表.我需要用新值更新逗号分隔值.
WITH cte AS (SELECT A.*,
T.pkcolumn,
T.column1
FROM table1 AS T
CROSS apply String_split(column1, ',') AS A
WHERE column1 = '<oldValue>'
OR column1 LIKE '<oldValue>,%'
OR column1 LIKE '%,<oldValue>,%'
OR column1 LIKE '%,<oldValue>')
UPDATE Y
SET column1 = Stuff((SELECT ',' + CASE WHEN value = '<oldValue>' THEN
'<newValue>'
ELSE value
END
FROM cte t1
WHERE t1.pkcolumn = t2.pkcolumn
FOR xml path ('')), 1, 1, '')
FROM cte t2
LEFT OUTER JOIN table1 AS Y
ON Y.pkcolumn = t2.pkcolumn `
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |