我有以下SQL查询:
Select X, Y
FROM Table.dbo
WHERE DESCRIPTION NOT LIKE 'X'
AND DESCRIPTION NOT LIKE 'Y'
AND DESCRIPTION NOT LIKE 'Z'
AND DESCRIPTION NOT LIKE 'A'
AND DESCRIPTION NOT LIKE 'B'
AND DESCRIPTION NOT LIKE 'C'
AND DESCRIPTION NOT LIKE 'D';
有没有更有效的方法来编写这个查询?
理想情况下DESCRIPTION NOT LIKE 'Y','Z','A','B','C','D'
等等。
谢谢!
您可以使用。
Select X, Y
FROM YourTable
WHERE DESCRIPTION NOT LIKE '[A-DYZ]'
我想你可能是想在模式中包含一个尾随通配符?在这种情况下
WHERE DESCRIPTION NOT LIKE '[A-DYZ]%'
如果图案任意不同,您可以使用
SELECT X,
Y
FROM YourTable
WHERE NOT EXISTS (SELECT *
FROM (VALUES ('%cars%'),
('%boats%'),
('%trains%')) V(C)
WHERE DESCRIPTION LIKE V.C)
或者使用CLR集成。安装正则表达式函数并搜索与Regex (cars|boats|trains)
不匹配的行