我在尝试根据 sql 中的 LIKE 匹配删除一行数据时遇到问题。我正在使用 SQL Server 2005。
我有一个表(@Containers),其中包含如下信息:-
PMBID DEPT
------ ---------
248057 5,8
249799 5,6,8
249800 5
249941 1,5
249942 1,4,15,16
249943 1,4,5
249945 4
249946 4
249947 4
249966 8,16,23
249967 5,6,8,16
两列都是字符串,我需要一个查询才能根据部门删除行,例如,如果 PMBID 中包含部门 1、11、23 或 31,则需要将其从表中删除。所以用这个逻辑PMBID的......
249941
249942
249943
249966
将被删除。
那么,当我的列是字符串时,我该如何在 SQL 中执行此操作(很好)?
我一直在写查询,例如...
DELETE FROM @Containers WHERE (Dept LIKE '%1%' OR Dept LIKE '%11%' OR Dept LIKE '%23%' OR Dept LIKE '%31%')
显然,此语句不起作用,因为它捕获了 15 和 16 之类的部门,例如 PMBID
249967
不应该包含它,因为它不是明确的 1、11、23 或 31(或这些的组合)。
这可能与字符串列有关吗?我们可以以某种方式使用分隔符来改进查询吗?
由于查询过于复杂,我现在将停止,如果您需要任何进一步的信息,请告诉我。