LIKE运算符用于数字序列

时间:2015-02-10 22:26:03

标签: sql sql-server tsql

我正在尝试使用通配符表达式来获取与数字序列相关的数据。我可以知道如何在通配符表达式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运算符对一系列数字使用通配符?

1 个答案:

答案 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

或类似的东西。