2

likeSQL Server 2008 R2 で演算子を使用して特殊文字を検索する必要があるという要件がありました。

元:

Name = sk'saintho

select * from table1 where name like 'sk'saintho'

上記の条件で、エラーが発生しています

「saintho」付近の構文が正しくありません。

文字列 '' の後の引用符が閉じていません。

この問題に関するアイデアを歓迎します。

4

1 に答える 1

2

SQL Server Management Studio を使用している場合は、構文の書式設定がクエリに問題があることを示していることがわかります。

select * from table1 where name like 'sk'saintho'

コンポーネントはskリテラル文字列として赤色にsainthoなり、通常の黒色のテキストになります。SQL は文字が文字列の一部であることを認識せず'、代わりにこれが文字列の末尾であると想定します。

他の多くの言語と同様に、文字列終了記号を文字列に含める正しい方法は、2 回含めることです。'これを 2 回使用すると、パーサーは、文字列を終了するのではなく、文字列の内側に を含めたいことを伝えます。

select * from table1 where name like 'sk''saintho'

文字を持つすべての既存のアイテムを見つけたい場合は、ステートメント'で同じパターンを使用できますlike

select * from table1 where name like '%''%'

パーサーはこれを次のように解釈しlike %'%、名前に'.

于 2013-08-16T20:38:09.917 に答える