
NULLの行を最下位にする場合は、下記のようなコードで解決できました。
select * from table order by
case when TEST is null then 0 else 1 end Asc
例)
NULL | 1
3 | 2
1 |→ 3
2 |NULL
これを、時間(HH:MM)をソートする時に、順番が思うように行きません。
3:20 | 1:10
1:10 |→ 9:10
9:10 | NULL
NULL | 3:20
上記のような順にソートされてしまいます。
1:10
3:20
9:10
NULL
の順にするには、何かよい方法はありませんでしょうか?よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
#なんだか元データに問題があるような木もするのですが…。
とりあえず、
select
case when 日付 is null then 0 else 1 end As Sortkey
,* from table order by
case when 日付 is null then 0 else 1 end Asc
を流してみて、Sortkey列にどのような値が出ますか?
あと、「日付」の型はDate型ですか?それとも別の型ですか?
この回答への補足
申し訳御座いませんでした。
khazad-leftyさんの御指摘通り、データに問題がありました。
下記の通りで思い通りにソートできました。原因は、NULLと""(空白)がデータにあり、頂いたコードですと、""が認識できなかったようです。私の不手際で御迷惑をお掛けいたしました。 今後ともよろしくお願い致します。 ありがとう御座います。
select * from テーブル order by case when 日付 is null then '2' when 日付 = '' then '1' else 0 end, 日付;
ご返信誠にありがとう御座います。
1. Sortkey列の値
1:10 → 1
3:20 → 1
9:10 → 1
NULL → 0
2. 日付の型は、NVARCHAR です。
以上、よろしくお願いします。
No.3
- 回答日時:
SQLCMD(バージョンによってはOSQL)で下記のようにやっても、NULLが
最後尾に出力されませんか?
create table tbl
(
dt nvarchar(5)
)
go
insert into tbl values ( NULL );
insert into tbl values ( N'01:10' );
insert into tbl values ( N'03:20' );
insert into tbl values ( N'09:10' );
go
select dt
from tbl
order by case when dt is null then 1 else 0 end, dt;
go
khazad-leftyさんの御指摘通り、データに問題がありました。
下記の通りで思い通りにソートできました。原因は、NULLと""(空白)がデータにあり、頂いたコードですと、""が認識できなかったようです。せっかく頂いたコードですが、勉強にさせて頂きました。ありがとう御座います。
select * from テーブル order by case when 日付 is null then '2' when 日付 = '' then '1' else 0 end, 日付;
No.1
- 回答日時:
select * from テーブル order by case when 日付 is null then 1 else 0 end, 日付;
で行けませんか。
申し訳御座いませんでした。
khazad-leftyさんの御指摘通り、データに問題がありました。
下記の通りで思い通りにソートできました。原因は、NULLと""(空白)がデータにあり、頂いたコードですと、""が認識できなかったようです。私の不手際で御迷惑をお掛けいたしました。 今後ともよろしくお願い致します。 ありがとう御座います。
select * from テーブル order by case when 日付 is null then '2' when 日付 = '' then '1' else 0 end, 日付;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Excel(エクセル) Excelでnullになるような式のセルをマクロで空白行と認識させるにはどうすればいいですか? 3 2023/03/13 13:42
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
最新の日付と2番目の日付のデー...
-
複数のテーブルから値を合計出...
-
【ExcelVBA】入力された日付か...
-
MySQLのDatetime型の検索方法
-
1の行を固定した上でVBAを用い...
-
テーブルの最後(最新)のレコー...
-
SQLローダーCSV取込で、囲み文...
-
SELECT FOR UPDATE で該当レコ...
-
AccessのSQL文で1件のみヒット...
-
Oracleで「文字が無効です」の...
-
BLOB型項目をSQLの検索条件に指...
-
データ
-
【PL/SQL】FROM区に変数を使う方法
-
都道府県順、北からソートした...
-
SQLで条件にヒットしたレコード...
-
ハイフンの入ったデータの並べ替え
-
単一グループのグループ関数で...
-
同一カラム名でjoinしたところ...
-
レコードの登録順がおかしい
-
SQL*Loader Append
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のテーブルから値を合計出...
-
<SQL>重複しているデータの場合...
-
MySQLで特定のグループの上位3...
-
mysqlでクロス集計を取りたいが...
-
最新の日付と2番目の日付のデー...
-
日付検索で0001-01-01 00:00:00...
-
直近1ヶ月に誕生日を迎える社員...
-
SQLで、同じ値が何回連続す...
-
PHPとMYSQLを使用したデータベ...
-
Mysqlで最新の日付を持つデータ...
-
DISTINCTROWについてです。
-
下記の問合せを行うクエリを、 ...
-
MySQLのdatetime型に0月0日を格納
-
SQL 重複しないJoinの仕方を教...
-
保存時間から10日後の判定
-
SQL Serverでデータの表示順を...
-
日付のフォーマット
-
サブクエリを使わない方法
-
MySQLのDatetime型の検索方法
-
NULLは表示順最下位
おすすめ情報