SQL Server 2014を使用しています。
現在以下の店舗テーブル(仮)を横展開させて、列ヘッダー用の行を作成しようと考えております。
その際に、本来の列ヘッダー行を削除、ないし非表示にすることは可能でしょうか?詳細は以下です。
●店舗テーブル
店舗コード | 店舗名 |
---|---|
1 | 串カツ屋1号店 |
2 | 串カツ屋2号店 |
3 | 串カツ屋3号店 |
※テーブル作成用クエリ文
SQL
1CREATE TABLE tenpo ( 2 id INT NOT NULL PRIMARY KEY, 3 name VARCHAR(50) NOT NULL 4); 5 6 7INSERT INTO tenpo VALUES 8( 1, '串カツ屋1号店' ), 9( 2, '串カツ屋2号店' ), 10( 3, '串カツ屋3号店' ); 11 12
●最初の「tenpo」テーブルのように出力・・・①
SQL
1SELECT 2 id AS 店舗コード, 3 name AS 店舗名 4FROM 5 tenpo
↓↓
●①を無理やり横展開してみます・・・②
SQL
1SELECT 2 '営業日' 3 , max( CASE id WHEN 1 THEN name else '' END ) 4 , max( CASE id WHEN 2 THEN name else '' END ) 5 , max( CASE id WHEN 3 THEN name else '' END ) 6FROM 7 tenpo
↓↓
●②のクエリ文の結果、以下のような出力になります・・・③
(列名なし) | (列名なし) | (列名なし) | (列名なし) | |
---|---|---|---|---|
1 | 営業日 | 串カツ屋2号店 | 串カツ屋2号店 | 串カツ屋3号店 |
※行ヘッダ、列ヘッダは基本デフォルトで入ります。
③の出力結果には、今後複数テーブルを「UNION ALL」で集合させるつもりです。その際、③のテーブルの一行目(営業日から始まる行)を列ヘッダー行として利用したいと考えております。
しかし、
本来のデフォルトで入っている列ヘッダー行(列名なし)が列ヘッダーになってしまう状況を解消できません。検索した結果、以下がヒットしました。
【 https://docs.microsoft.com/ja-jp/previous-versions/sql/sql-server-2008/ms162773(v=sql.100)?redirectedfrom=MSDN 】
●sqlcmdユーティリティを利用する方法
使用したことがないのではっきりしませんが、設定したログインユーザーでクエリ文を操作する際、すべての出力テーブルから列ヘッダーの表示をしないような方法のように認識しました。(間違っているかもしれません)
今実現したいのは、
特定のログインユーザーでクエリ文を操作する際、全てのテーブルから列ヘッダ行を表示しないのではなく、今出力するテーブルについて元々の列ヘッダー行を表示せず任意の行を列ヘッダーにしたいと考えてはいるのですが、果たして実現可能なのでしょうか。
※今回、SELECT文内でASを用いた方法は想定しておりません。
何かご存じの方がいらっしゃいましたら、ご教示いただけますと幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー