我有以下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'
等等。
谢谢!
答案 0 :(得分:1)
你可以使用。
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集成。安装正则表达式函数并搜索与正则表达式(cars|boats|trains)