2012-12-13 164 views
3

我有一个nvarchar字段,有4位数字。 第2位是00和99之间 接下来2位应为数字00和15之间like pattern'[0-9] [0-9] [0-1] [0-9]'

我的SQL like看起来像这样:

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

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

可以用类似的模式做到这一点吗?

BR斯特凡

回答

2

刹车间隔

(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]') 
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的两个最右边的字母不是数字,后面的查询可能会失败。

+0

你也可以使用'|'运营商能不好吗? – phaazon

+0

@skp:[LIKE pattern](http://msdn.microsoft.com/en-us/library/ms179859.aspx)不是正则表达式。它仅支持非常有限的一组操作员。 – Heinzi

+0

你是对的。然后是SIMILAR或者SIMILAR,我不太记得 – phaazon

0

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

相关问题