我正在查询以“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/

10-14 15:02