web-dev-qa-db-ja.com

セル値の引用符またはアポストロフィをエスケープするExcel

Excelスプレッドシートでクライアントから多くのデータベース情報を取得します。このデータを頻繁にデータベースに挿入/更新する必要があります。

多くの場合、Excelを使用して、一連のセルを連結して挿入ステートメントと更新ステートメントを生成します。データには、単一引用符を含むことができるテキストセルが含まれることがあります。慎重に対処しないと、これらの単一引用符によってSQLステートメントが破損します。

結果のSQLスクリプトが有効になるように、セル値の束を連結するときに、数式を介してテキストデータ内の単一引用符をエスケープするにはどうすればよいですか?

18
Mir

私が見つけた最良の解決策は、以下を使用することです:

=SUBSTITUTE(A1, "'", "''")

これにより、すべての単一引用符が2つの単一引用符に置き換えられます。これは、T-SQLステートメントで文字をエスケープし、文字列データとして扱います。

26
Mir

二重引用符でCONCATENATEを使用するには、引用符をエスケープする必要があります。それは次のように行われます:

=CONCATENATE("""";"In quotes!";"""")
0
user4669140