PostgreSQL 文字列を順番にソート
PostgreSQL ver 8.4 で動作済み
以下のように数字が入っている文字列を昇順・降順したいと思います。
例 )
jaswill1
jaswill2
jaswill3
【文字列ソート】
ORDER BY
TO_NUMBER ( SUBSTRING ( USR_ID FROM ‘[0-9].*$’ ) , ‘[9]’ ) , USR_ID
あと、よくあるのが重複チェックですね。
せっかくなので、メモメモ φ(。。)
【重複データ取得】————————————————————–
SELECT
A.USR_ID AS USR_ID
FROM
TABLE_A A
WHERE
A.DELETE_FLG = 0
GROUP BY
A.USR_ID
HAVING
COUNT ( A.USR_ID ) > 1
—————————————————————————————
っで、↑コレを【文字列ソート】と組み合わせると・・・
【重複データの文字列ソート】————————————————
SELECT
A.USR_ID AS USR_ID
FROM
TABLE_A A
WHERE
A.DELETE_FLG = 0
AND
EXISTS
( SELECT
AA.USR_ID AS USR_ID
FROM
TABLE_A AA
WHERE
AA.USR_ID = A.USR_ID
GROUP BY
AA.USR_ID
HAVING
COUNT ( AA.USR_ID ) > 1
)
ORDER BY
TO_NUMBER ( SUBSTRING ( A.USR_ID FROM ‘[0-9].*$’ ) , ‘[9]’ ) , A.USR_ID
,A.USR_ID DESC(ASC)
—————————————————————————————
・・・雑だけど気にしない。
これで、重複した文字列をソートできます。
分かりやすいように、ナンバー(No)とかつけると、順番になっている事が分かりやすいと思います。
ちょっとした備忘録です。