1

I'm using MS Access to work with an SQL Server database through an ODBC connection on Windows 7.

最終的な目標は、行のサブセットのフィールドの 1 つに文字列リテラルを追加することです。ただし、最初は、すべてが正しいことを確認できるように、SELECT を実行しようとしています。フィールドに文字列リテラルを追加しようとすると問題が発生します。

以下の単純な SQL はうまく機能します。

SELECT Name FROM Customers WHERE CustomerType = 1;

次のステップは、表示される名前を少し変更することでした。

SELECT Name, 'PREFIX' & Name FROM Customers WHERE CustomerType = 1;

上記も機能しました。次に、次のことを試しました。

SELECT Name, Name & 'SUFFIX' FROM Customers WHERE CustomerType = 1;

これは動作しません。出力には、何も追加されていない Name フィールドのみが表示されます。調べてみると、SQL Server は CONCATENATE('a' + 'b') をサポートしているようです。クエリでそれを使用しようとしましたが、CONCATENATE 関数がないという Access からのエラーで失敗しました。

また、代わりに二重引用符と & の代わりに + を試しました。

接頭辞のケースが機能し、接尾辞のケースが機能しなかったのは奇妙に思えます。

繰り返しになりますが、最終的な目標は、以下のようなものを構築することです。

UPDATE Customers SET Name = Name & 'SUFFIX' WHERE CustomerType = 1;

これにより、テーブル内の行のサブセットのテキスト フィールドにサフィックスが追加されます。

何か案は?

4

2 に答える 2

4

SQL Server では&、バイナリ マスク用です。+オペレーターが欲しい

UPDATE Customers 
SET Name = Name + 'SUFFIX' 
WHERE CustomerType = 1;

CONCATENATEどこから来たのかわかりませんCONCAT-SQL 2012には関数がありますが、他のバージョンにはそのようなものはありません

于 2013-08-09T14:20:45.560 に答える