我正在尝试根据For XML PATH字段的内容运行更新语句。 SQL是:
UPDATE a
SET a. ItemsList =
(select distinct Items + ',' from #tScanRemake b WHERE a.ScanOrderCaseid= b.ScanOrderCaseid FOR XML PATH( '') )
FROM #tScanRemake a
UPDATE a
SET a. IsBridge = 1 Select Count (*) from (Select * From #tScanRemake b WHERE CHARINDEX ('Bridge', ItemsList)> 0 )
FROM #tScanRemake a
第一部分效果很好,并在ItemsList字段中为我提供了一个单独的列表。我想要做的是根据ItemsList字段中的子字符串更新位字段。
问题是子字符串可以在列表中出现多次。我只关心它是否发生。如果找到该字符串,那么我想将IsBridge字段设置为1,否则将其设置为0.
我无法弄清楚如何在列表中搜索。
答案 0 :(得分:1)
您可以在UPDATE
声明中使用CASE condition
UPDATE a
SET a.IsBridge = CASE WHEN CHARINDEX ('Bridge', ItemsList)> 0 THEN 1 ELSE 0 END
FROM #tScanRemake a