我有一个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斯特凡
我有一个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斯特凡
刹车间隔
(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-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-SQL AND
不会短 - 电路:如果I4020
的两个最右边的字母不是数字,后面的查询可能会失败。
(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]')
你也可以使用'|'运营商能不好吗? – phaazon
@skp:[LIKE pattern](http://msdn.microsoft.com/en-us/library/ms179859.aspx)不是正则表达式。它仅支持非常有限的一组操作员。 – Heinzi
你是对的。然后是SIMILAR或者SIMILAR,我不太记得 – phaazon