2012-12-13 86 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]')

相關問題