如何根据另一个字段的子字符串更新字段?

时间:2014-01-28 04:57:04

标签: sql sql-server tsql sql-update

我正在尝试根据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.

我无法弄清楚如何在列表中搜索。

1 个答案:

答案 0 :(得分:1)

您可以在UPDATE声明中使用CASE condition

UPDATE a
SET a.IsBridge = CASE WHEN CHARINDEX ('Bridge', ItemsList)> 0 THEN 1 ELSE 0 END
FROM #tScanRemake a