我需要找出在我的sql server表中特定字段中有多少行,只包含非字母數字字符。返回sql行where字段僅包含非字母數字字符
我在想這是一個正則表達式,我需要沿着[^ a-zA-Z0-9]的行,但我不確定我需要返回行的確切語法,如果沒有有效的字母數字字符在那裏。
我需要找出在我的sql server表中特定字段中有多少行,只包含非字母數字字符。返回sql行where字段僅包含非字母數字字符
我在想這是一個正則表達式,我需要沿着[^ a-zA-Z0-9]的行,但我不確定我需要返回行的確切語法,如果沒有有效的字母數字字符在那裏。
SQL Server沒有正則表達式。它使用不相同的LIKE模式匹配語法。
碰巧,你很近。剛需主導+尾隨通配符和移動NOT
WHERE whatever NOT LIKE '%[a-z0-9]%'
如果你有短字符串,你應該能夠創建一些LIKE模式('[^a-zA-Z0-9]'
,'[^a-zA-Z0-9][^a-zA-Z0-9]'
,......)來匹配不同長度的字符串。否則,您應該使用CLR用戶定義函數和適當的正則表達式 - Regular Expressions Make Pattern Matching And Data Extraction Easier。
通配符不應該在那裏,因爲他只需要非字母數字數據 – cjk
@cjk:改正後,我把「否定」放在錯誤的地方。這發現在 – gbn
沒有字母數字的字符串謝謝,工作很好。 – marcusstarnes