No.1ベストアンサー
- 回答日時:
null を取り得る項目は、 COALESCE を被せて null の場合はその型の最小値を取るようにするとか。
例) ------------------------------------
SELECT * FROM hoge
ORDER BY GREATEST(a, COALESCE(b, -2147483648)) DESC;
もしくは、CASE式を使ってnull判定をするとか。
例) ------------------------------------
SELECT * FROM hoge
ORDER BY CASE WHEN b IS NOT NULL THEN GREATEST(a, b) ELSE a END DESC;
SELECT * FROM hoge
ORDER BY CASE WHEN b IS NULL THEN a WHEN b > a THEN b ELSE a END DESC;
> 後、MAXとは何が違うのでしょうか?
MAXは集約関数ですから、複数のレコード(タプル)の指定されたカラム(属性)の最大値を求める関数ですね。一方、GREATEST は与えられた引数の中から最大のものを取り出す関数です。
感覚的には、MAXは縦の中の最大値を求め、GREATESTは横の中の最大値を求めるという感じですね。
http://dev.mysql.com/doc/refman/5.1/ja/compariso …
http://dev.mysql.com/doc/refman/5.1/ja/group-by- …
No.2
- 回答日時:
order by GREATEST(a,IFNULL(b,a)) desc
でもできるようです。
※IFNULL(b,a) bがNullでなければb、Nullならaを返す。
基本的にはANo.1のかたの方法でいいと思いますが、
他の方法も示しておこうかなと思って書いています。
なお以下は蛇足です。
上のIFNULL同様に、
GREATEST(a, COALESCE(b, -2147483648)) DESC;
は、
GREATEST(a, COALESCE(b, a)) DESC;
でいいのではないかなと思いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
MAX関数を使ってからLEFT JOINしたいのですが・・
PHP
-
Unionの結果全体をOrder By したい。
SQL Server
-
GROUP BYを行った後に結合したい。
Oracle
-
-
4
Oracleでの文字列連結サイズの上限
Oracle
-
5
ORACLE SQL 複数項目の最大抽出
Oracle
-
6
Viewにインデックスは張れますか?
Oracle
-
7
CSVファイルの中で、「 , 」カンマを使いたい
その他(コンピューター・テクノロジー)
-
8
SQL 全角半角混在の文字列から半角数字のみを抜き出す
Oracle
-
9
WHERE句の実行順序
Oracle
-
10
CASE文のエラーについて
Oracle
-
11
SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?
PostgreSQL
-
12
DATE型とnullの比較
その他(データベース)
-
13
単一グループのグループ関数ではありません。
Oracle
-
14
キーが同じを複数行を1行にまとめるには?
Oracle
-
15
SELECT 文 GROUP での1件目を取得
SQL Server
-
16
固定値を含む結合と複数テーブルの結合について
Oracle
-
17
【MYSQL】asでリネームしてwhereで使う
MySQL
-
18
svnでリポジトリのファイルをローカルにダウンロードするには
その他(ソフトウェア)
-
19
selectした大量データをinsertしたい
MySQL
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一部のカラムでdistinctし全て...
-
GREATESTで NULLをスルーする方...
-
AUTO_INCREMENTに0はダメ?
-
カラムをコピーして、新規カラ...
-
now()かCURRENT_TIMESTAMPか
-
SELECT文で、指定カラム以外の...
-
SQLについて教えて下さい。 SEL...
-
構造が異なる二つのテーブルをu...
-
smalldate型へnull値の代入
-
DBエラーの意味
-
文字列のカラムを数字と比較したい
-
DB2のBLOB型カラムに格納された...
-
複数テーブルから全データ取得...
-
MYSQLで全てのカラムから検索す...
-
UNIONする際、片方テーブルしか...
-
MySQLで先頭にカラムを追加
-
ドロップダウンリストの連動し...
-
エクセルかワードで家系図を作...
-
大文字小文字の区別をさせる関数
-
カラムとコラムの使い分け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT文で、指定カラム以外の...
-
UNIONする際、片方テーブルしか...
-
一部のカラムでdistinctし全て...
-
MYSQLで全てのカラムから検索す...
-
GREATESTで NULLをスルーする方...
-
now()かCURRENT_TIMESTAMPか
-
sql , insert で空行(全ての列...
-
AUTO_INCREMENTに0はダメ?
-
構造が異なる二つのテーブルをu...
-
カラムをコピーして、新規カラ...
-
ドロップダウンリストの連動し...
-
SQLでカラムを追加し、条件に合...
-
SQLで、行ごとのとある要素を比...
-
MySQLで論理名を取得する方法
-
MySQLで先頭にカラムを追加
-
日付を一括UPDATE
-
SQLについて教えて下さい。 SEL...
-
カラムとコラムの使い分け
-
文字列のカラムを数字と比較したい
-
ROUND関数で、四捨五入ができな...
おすすめ情報