テーブルに、年月日1,年月日2,年月日3 という3つの列があります。それぞれ可能性としてどこにでも好きな値が入り、値が無い状態は NULL です。全ての組み合わせで有効な値のみで一番大きな日付を戻す列を作成する SQL です。
select case when 年月日1 is NULL and 年月日2 is NULL then 年月日3 when 年月日2 is NULL and 年月日3 is NULL then 年月日1 when 年月日1 is NULL and 年月日3 is NULL then 年月日2 when 年月日1 is NULL and 年月日2 <= 年月日3 then 年月日3 when 年月日1 is NULL and 年月日2 > 年月日3 then 年月日2 when 年月日2 is NULL and 年月日1 <= 年月日3 then 年月日3 when 年月日2 is NULL and 年月日1 > 年月日3 then 年月日1 when 年月日3 is NULL and 年月日1 <= 年月日2 then 年月日2 when 年月日3 is NULL and 年月日1 > 年月日2 then 年月日1 when 年月日1 <= 年月日2 and 年月日3 <= 年月日2 then 年月日2 when 年月日2 <= 年月日1 and 年月日3 <= 年月日1 then 年月日1 when 年月日1 <= 年月日3 and 年月日2 <= 年月日3 then 年月日3 else 年月日1 end as 最終年月日 , 年月日1 , 年月日2 , 年月日3 from テーブル
関連する記事 複数行のグループデータを1行にまとめるSQL
タグ:SQL
|
|
【DB関連の最新記事】
- 複数行のグループデータを1行にまとめるSQL
- テーブル設計書作成 : 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を使用した接続




























