3

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

我的 SQLlike看起来像这样:

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

问题是例如 1219 是可能的。

是否可以使用类似的模式来做到这一点?

布拉斯特凡

4

3 回答 3

5

使用一种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-SQLAND不会短路:如果 最右边的两个字母I4020不是数字,则后一个查询可能会失败。

于 2012-12-13T12:56:26.480 回答
2

刹车间隔

(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]')
于 2012-12-13T12:56:01.397 回答
0

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

于 2012-12-13T12:56:39.507 回答