都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

便利な SQL の関数とか、構文とか、その他色々まとめてみる - その3 ( PIVOT、ピボットです ) -

 今回は、PIVOT を取りあげます。SQL Server 2005 から追加された関数です。縦に展開している行を列に展開し、今回のサンプルのように集計などに用いられます。

f:id:koogucc11:20140413215447p:plain

 下記のようなクエリを SQL Server Management Studio で実行します。

SELECT [0001] AS '処方', [0002] AS '検査', [0003] AS '予約', [0004] AS '放射線'
 FROM (select ID,[伝票コード] from dbo.TB_TEST) AS T
 PIVOT
 (
	COUNT(ID)
	FOR T.伝票コード IN ([0001],[0002],[0003],[0004])
 ) AS TEST_TABLE

f:id:koogucc11:20140413221531p:plain

 知らないと、SQL 、ロジックでかなり複雑になったりすることが多いと思います。使いこなすと、SQLも、ロジックも簡素化されるので、ぜひ利用してみてください。