縦のデータを case で行毎の表示列を作成する
select コード ,case 行 when 1 then 内容 else null end as 内容1 ,case 行 when 2 then 内容 else null end as 内容2 ,case 行 when 3 then 内容 else null end as 内容3 from data
後は、group と max で一つの行に
select コード ,max(case 行 when 1 then 内容 else null end) as 内容1 ,max(case 行 when 2 then 内容 else null end) as 内容2 ,max(case 行 when 3 then 内容 else null end) as 内容3 from data group by コード
CREATE TABLE `data` ( `コード` int(11) NOT NULL DEFAULT '0', `行` int(11) NOT NULL DEFAULT '0', `内容` varchar(50) DEFAULT NULL, PRIMARY KEY (`コード`,`行`) )
MySQL でのサンプルですが、SQLServer、PostgreSQL、Oracle でも可能です。 各構文のサンプルはこちらから ※ 分解には、UNION を使います。
|
【DB関連の最新記事】
- テーブル設計書作成 : VBScript + Excel.Application + SQLServer
- select 社員コード,氏名,(select count(*) from 得意先マスタ where 担当者 = 社員コード) as 件数 from 社員マスタ : 件数を where で使いたい場合..
- SQL Server とそのコンポーネントのバージョンとエディションを確認
- land.to での PHP + PostgreSQLでの接続テスト
- SQL*PlusだけでCSVを作成する
- PHP と MySQL 限定で SQL インジェクションを考えた場合
- Oracle11g + Windows7 : InstantClient を使用した軽量接続 ( Win32 )
- MySQL:GPLな再配布。プログラムは無しでデータのみ追加
- MySQL5.1.4の半手動インストール(インストール場所の変更)
- グループ関数の原則
- Oracleエクスポートユーティリティ(expdp)パラメータ入力支援HTMLアプリケーション
- 今年もPL/SQLはFunctionから
- OracleInstantClientによる接続確認
- SYSTEMユーザからスキーマを作成、販売管理データを投入する
- BCP.EXEで自動採番列(INTIDENTITY)を持つデータの移行
- SQLExpress2005のインストールから最速設定(2)
- SQLExpress2005のインストールから最速設定(3)
- SQLExpress2005のインストールから最速設定(1)
- 【Oracle10g接続】InstantClientを使用した接続
- MySQL5.1.26をUSBメモリに入れて使用する