2015-05-23 33 views
1

我嘗試創建一個語句來檢查字符串是否像普通字符串。SQL中的正則表達式使用LIKE運算符

DECLARE @RuleName NVARCHAR(MAX) = 'Up to 6 hours' 

IF @RuleName LIKE 'Up to [0-9]+ hours' 

此聲明需要在任何情況下返回true,否則'to'後面的數字是一個或多個數字。 例如: '長達32小時','長達456小時','長達3小時' 所有這些實例都必須成立。 由於某種原因,它的工作對我來說只是沒了+符號

IF @RuleName LIKE 'Up to [0-9] hours' 

但當時只有當只有1位數的表達得到真實的。

如何解決[0-9] +?

感謝

+0

它是[的Transact-SQL(https://msdn.microsoft.com/en-us/library/ms179859.aspx)?它不支持'+'。 –

+0

是的。所以還有另一種解決問題的方法? –

+0

請檢查我的答案,有解決方法。 –

回答

1

Transact-SQL LIKE patterns,不支持+量詞。

您可以利用%符號:

%的零個或多個字符的任意字符串。

IF @RuleName LIKE 'Up to [0-9]% hours' 
+0

這個epression:'高達[0-9]%小時'的工作太棒了。非常感謝你 –

+0

好極了,如果它對你有用(請看左邊的向上箭頭),也請考慮提高答案。現在,你有這個特權的聲譽。 –