バックグラウンド情報:SQL Serverでquotenameを正しく実装するにはどうすればよいですか?
私はSSRSレポートを作成するストアドプロシージャを持っています。 SSRSレポートは実行され、CSVとしてエクスポートされます。その後、テキストファイルとして開かれ、3者ベンダのアプリケーションを実行します。
テキストブックの出力は次のようになります。
lid, status, i_flag,Count, pDate, iDate
62558633,"Text Value","08/16",11,"08/16","08/16"
78013526,"Text Value","",,"08/16""08/16"
私の結果は次のようになります。
lid, status, i_flag,Count,pDate,iDate
19007442,"'Dir,MgmtII'",'',2,'','02/16'
17343623,'Text','',0,'11/15','02/16'
今、私が使用しているコードは次のとおりです。
SELECT
quotename(isnull(i_flag,''''), '''') as i_flag,
isnull(lid, 0) as lid,
quotename(isnull(status,''''), '''') as status,
isnull(Count, 0) as Count,
quotename(isnull(p_Date,''''), '''') as p_Date,
quotename(isnull(i_Date,''''), '''') as i_Date
FROM
#Table
私はこれをどのように修正することができますかに関する任意のアイデア。これでちょっと困惑しました。ありがとう。
あなたはQUOTENAMEのことを混乱させるかもしれないと思います。 https://msdn.microsoft.com/en-us/library/ms176114.aspx識別子を正しく構成するために使用されます。 –
私はそのリンクを見ました。次のコードで手続きを書く前に、私はそれをテストしました。 Declare @text varchar(10)= 'Name' SELECT QUOTENAME(@Text、 '"")申し訳ありませんが、SQLスニペットを追加する方法がわかりません。しかし、そのようなものは私が何をしたのかを成し遂げます。私は私のクエリから返された行の周りに二重引用符を追加しようとしています。行がnullの場合でも。 – user6780741
「行が空白の場合でも」という意味ではありませんか。 NULL行などはありません。私はあなたが出力として望むもののフォーマットを理解していません。私は空の文字列でNULLを処理したい。そのためには、4ではなく2つの一重引用符を使用する必要があります。 –