我有一個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