3

そのクエリを実行して結果を返す内部アプリケーションにクエリを渡しています。接続は CSV ファイルであり、Provider=Microsoft.Jet.OLEDB.4.0 に接続しています。

文字列を 1 つの列に結合したいのですが、エラーが発生します。

これを行うことができますか、誰もそれを行う方法を知っていますか?

私がやっていることの例:

select 
 PurchaseOrderNo, 
 PurchaseOrderDate, 
 Description, 
 Quantity,
 ContractName + 'delimiter' + ContractNo as LinePrimaryKeys
from [POImport baseline.csv]

エラー: - エラー - プロバイダは Double 値を特定できませんでした。たとえば、行が作成されたばかりで、Double 列のデフォルトが使用できず、コンシューマーがまだ新しい Double 値を設定していません。

他の読み取りから、私が結合している値の両方が文字列として認識されているわけではないようです。

たとえば、 PurchaseOrderNo + 'delimiter' + ContractNo as LinePrimaryKeys を PurchaseOrderNo + 'delimiter' + PurchaseOrderNo as LinePrimaryKeys に置き換えます。

エラーを停止します。では、文字列にキャストするにはどうすればよいでしょうか。

これはうまくいきません。ContractName + 'cn' + CAST(ContractName as nvarchar(50)) as LinePrimaryKeys

4

1 に答える 1

4

+の代わりに&を使用する必要があります。

&は文字列連結を行い、+は (数値) 加算を行います。&を使用すると、すべてのオペランドが文字列に自動的にキャストされます。

select 
 PurchaseOrderNo, 
 PurchaseOrderDate, 
 Description, 
 Quantity,
 PurchaseOrderNo & 'delimiter' & ContractNo as LinePrimaryKeys
from [POImport baseline.csv]
于 2009-05-19T06:34:53.353 に答える