6
我想過濾某些SQL服務器數據,需要具備以下條件的結果:使用SELECT獲得只在SQL Server上的字母數字數據(以及某些標點符號)領域
- 其中場有字母數字字符,不區分大小寫
- 其中場有一定的標點符號(撇號和連字符)
- 在現場沒有空格
是否有一個有效的方式做到這在SQL Server中使用CHAR還是有人有更好的解決方案?
我想過濾某些SQL服務器數據,需要具備以下條件的結果:使用SELECT獲得只在SQL Server上的字母數字數據(以及某些標點符號)領域
是否有一個有效的方式做到這在SQL Server中使用CHAR還是有人有更好的解決方案?
這使用雙負僅過濾字符
在期望的範圍之外的任何字符從LIKE給出真實的期望的範圍。如果字符串只包含所需範圍內的字符,LIKE將給出錯誤。然後,另一個不
WHERE
SomeCol NOT LIKE '%[^a-z0-9-'']%'
注:我這裏使用的
單引號默認情況下,SQL Server是不區分大小寫。如果需要的話
SomeCol COLLATE Latin1_General_CI_AS NOT LIKE '%[^a-z0-9-']%'
添加COLLATE子句或更改範圍
SomeCol NOT LIKE '%[^a-zA-Z0-9-']%'
,或者,如果您要包含A = A
SomeCol COLLATE Latin1_General_CI_AI NOT LIKE '%[^a-z0-9-']%'
我編輯的第一個字符串文字,取代單引號裏面有雙。如果我錯了,請糾正我。 – 2013-06-28 14:03:52