我正在查询以“ST”结尾的内容,后跟数字 1 - 999。SELECT NUMBER WHERE NUMBER LIKE '%ST
-- 正常工作以返回以“ST”结尾的所有内容SELECT NUMBER WHERE NUMBER LIKE '%[1-999]
-- 正确返回以 1 - 999 结尾的所有内容SELECT NUMBER WHERE NUMBER LIKE '%ST[1-999]
- 不起作用 - 不返回任何内容
还试过:SELECT NUMBER WHERE NUMBER LIKE '%ST%[1-999]
-- 有效,但也会返回诸如“GRASTNT3”之类的东西,这些东西在“ST”和数字之间有额外的东西
任何人都可以帮助这个苦苦挣扎的初学者吗?
谢谢!
最佳答案
问题是 [1-999] 并不意味着你认为它的作用。
SQL Server 将其解释为一组值 (1-9, 9, 9),这基本上意味着如果 ST 后有超过 1 位数字,则不会返回该条目。
据我所知,你最好的选择是:
SELECT NUMBER WHERE
NUMBER LIKE '%ST[1-9][0-9][0-9]' OR
NUMBER LIKE '%ST[1-9][0-9]' OR
NUMBER LIKE '%ST[1-9]'
(假设您的数字没有前导零 - 如果有,请用更多零替换这些数字)
关于sql - 选择使用通配符查找以两个字符然后数字结尾,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19984043/