2017-04-25 9 views
0

SQLから特定の列に '_'文字を含む行を選択したいとします。私はこのクエリを実行しようとすると 、それはテーブル内のすべての行を返す特定の列に '_'が含まれるすべての行を選択します。

SELECT * FROM [Attribute] where LibID=26 and Name like '%_%' 

が、次のクエリは、私の最初のクエリが期待される結果を返すされていない理由を私は

SELECT * FROM [Attribute] where LibID=26 and CHARINDEX('_', Name) > 0 

が必要なものを生み出します。たぶん、私はSQLの情報や知識が不足しています。

+0

を '%\\ _%' ESCAPE '\' – Esperento57

答えて

3

_(アンダースコア)文字は、任意の文字と一致させるためにLIKE関数で使用されます。あなたはアンダースコアとしてそれを使用したい場合、あなたはそれをエスケープする必要があります:

SELECT * 
FROM [Attribute] 
where LibID=26 
and Name like '%[_]%' 
1

アンダースコアはLIKEクエリでワイルドカード文字です。任意の1文字を示します。

LIKE構文、使用使用するには:のように

SELECT * FROM [Attribute] where LibID=26 and Name like '%[_]%'

関連する問題