像模式'[0-9] [0-9] [0-1] [0-9]'

时间:2012-12-13 12:51:14

标签: sql sql-server tsql

我有一个4位数的nvarchar字段。 前2位数字介于00和99之间。 接下来的2位数应该是00到15之间的数字

我的SQl like看起来像这样:

I4020 like '[0-9][0-9][0-1][0-9]'

问题是,例如1219是可能的。

是否可以使用类似模式执行此操作?

BR Stefan

3 个答案:

答案 0 :(得分:4)

使用一个 LIKE模式无法做到这一点。但是,您可以使用其中两个:

(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]')

或者,如果字段始终包含数字,则可以使用数字匹配:

I4020 LIKE '[0-9][0-9][0-9][0-9]'
AND CONVERT(int, RIGHT(I4020, 2)) <= 15

但请注意,T-SQL AND不会短路:如果I4020的最右边两个字母不是数字,则后一个查询可能会失败。

答案 1 :(得分:2)

制动间隔

(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]')

答案 2 :(得分:0)

(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]')