2013-10-30 61 views
1

使用SQL我試圖驗證一個字段只包含大寫字符,數字和可能包含' - '。
我試圖刪除具有小寫字符或除' - '以外的任何符號的結果。SQL像函數大寫字母有或沒有破折號

到目前爲止,我有

WHERE ItemCode LIKE UPPER(ItemCode) Collate SQL_Latin1_General_CP1_CS_AS 

然而這允許所有其他有趣的字符和符號。

感謝您的幫助。

+1

也許您可以在RDBMS中使用正則表達式進行此類過濾,但語法是rdbms特定的。 –

回答

1
WHERE ItemCode NOT LIKE '%[^-A-Z0-9]%' Collate Latin1_General_Bin 

應該這樣做。

-A-Z0-9匹配-字符或項目的排列順序範圍A-Z,0-9^否定了該表達。

所以結合NOT LIKE可以找到那些不是數字,大寫或-的字符的值。

+0

謝謝你的幫助。 – MikeR

相關問題