1

C# を使用して一部のデータをインポートするときに作業を楽にするビューを作成しています。すべての変換とキャスト (および正しい列の長さの設定) を C# ではなく SQL 側で行うことができれば、時間を大幅に節約できます。 (私のC#コードはすべて動的であり、ハードコーディングされておらず、正しい長さではない場合に失敗するためです)。これは多かれ少なかれ私が非常に小規模で行っていることです:

CREATE VIEW vw_pendingitems
AS
   SELECT 
      CAST(a.columnone AS CHAR(1)) 'Column 1', 
      CAST(a.columntwo AS CHAR(1)) 'Column 2', 
      CAST(a.adecimalcolumn AS VARCHAR(30)), 
      CAST(null AS VARCHAR(20)) 'A not yet defined column',
      b.anintcolumn 'An int column'
FROM table1 a
JOIN table2 b ON a.key = b.key

最初の 2 つの列は正常に動作していますが、null をキャストすると問題が発生すると思います。私が達成しようとしていることを行うための他の/より良い方法はありますか?

4

1 に答える 1

1

ACASTは、null 許容列で正常に動作するはずです。返されるだけNULLです。したくない場合はNULL、 を使用できますISNULL

SELECT ISNULL(CAST(NULL AS VARCHAR(20)), '') 'A not yet defined column'

ただし、データ型の変更には注意が必要です。小さいデータ型を使用すると、データが失われるか、エラーが発生する可能性があります。

于 2013-03-07T06:56:18.727 に答える