前提条件
- SQL Server 2017 環境
- C#のプログラム上でクエリを実行している
背景
- テーブル名:TABLE_A
- カラム:COLUMN_A [int], COLUMN_B [bit], COLUMN_C [nvarchar(32)]
上記のようなテーブルに対して、以下のようなクエリをC#プログラムで実行していた(クエリはプログラムにハードコーディング)
SQL
1SELECT 2COLUMN_A 3, (CASE [CAST] WHEN 0 THEN 'FALSE' WHEN 1 THEN 'TRUE' END) AS COLUMN_B 4, COLUMN_C 5FROM TABLE_A
やりたいこと
- 上記のクエリのCASE文のような要求を満たしつつ、DB側のスキーマが変わっても(例えばCOLUMN_Dというカラムが追加されても)すべてのカラム(COLUMN_A,COLUMN_b,COLUMN_C,COLUMN_D)の情報を取得できるようにプログラムにクエリをハードコーディングしたい。
- すべてのカラムは1列ずつ情報取得したい。
試してみたが思うようにいかなかったこと
SQL
1SELECT 2* 3, (CASE [CAST] WHEN 0 THEN 'FALSE' WHEN 1 THEN 'TRUE' END) AS COLUMN_B 4FROM TABLE_A
上記のようにワイルドカードとCASEで分けてSELECTしたが、同じ列名の列が重複して取得されてしまい、思うように結果が得られなかった。
やりたいことの2点を実現する術があれば、ご教授いただきたいです。
回答3件
あなたの回答
tips
プレビュー