我正在尝试使用通配符表达式来获取与数字序列相关的数据。我可以知道如何在通配符表达式LIKE [0-10]中使用一系列数字。
这是我的查询:
select grade from table where grade LIKE [1-12]?
输出:是1和2
我提到了t-SQL书,他们谈论了LIKE N [1-12]。 LIKE [1-12]和N [1-12]之间有什么区别?
我可以使用1到12之间来获取数据。但我很好奇如何使用LIKE运算符对一系列数字使用通配符?
答案 0 :(得分:5)
在SQL Server中,like
有三个通配符。下划线'_'
代表任何单个字符。 %
表示零个或多个字符。和方括号。
方括号之间的表达式代表一个单一字符。所以,
x like '[abc]'
匹配“a”,“b”或“c” - 没有别的。以下匹配任何数字:
x like '[0123456789]'
然而,输入开始变得很麻烦。因此,SQL Server提供了简写:
x like '[0-9]'
这只是指从0开始到9结束的范围内的任何字符。
您可以将任何十六进制字符与:
匹配x like '[0-9ABCDEF]'
因此,范围内允许使用其他字符。
写作时
x like '[1-12]'
你说x喜欢从1到1的字符范围加上字符2.这更容易写成:
x like '[12]'
在任何情况下,您都不应将数值存储为字符串,也不应在数字上使用like
。写得好得多:
grade between 1 and 12
或类似的东西。