在sql server中Replace關鍵字主要是用來將字符串中的某個字符替換成別的字符,今天要逆向思維,它還可以用來查詢是否包含某個特定字符串,例如給定下面數據集
期望從這個數據集中獲取包含“aaa”字符的記錄,注意第2條數據不是包含“aaa”,而是包含“aaaa”。期望的”“結果如下:
傳統的思維肯定是想如何查出包含有3個a的字符串,有的人會像用like,但這樣會連同4個a也查出來。這裡我們就思考用Replace替換掉字符串中的“aaa”,如果能夠替換掉,那就證明該字符串中含有這個字符,替換掉了以後肯定和原字符串不一樣,因此有了下面的SQL出爐。
復制代碼 代碼如下:
SELECT * FROM [master].[dbo].[Table_5]
WHERE REPLACE(','+strNum+',', ',aaa,', '') <> ','+strNum+','