2000件以上のデータの中から、長い文字列が格納された行を処理した結果を確認したくなりました。
プログラムで調べてもいいのですが、SQLでできないか確認したら、PostgreSQLでは、char_length()という関数が用意されていました。
使い方
使い方は簡単で
SELECT char_length(string1) AS len1, * FROM test
とすれば、長さがわかりました。
もうちょっと便利に
長い順に並べ替えるために、
SELECT char_length(string1) AS len1, * FROM test ORDER BY len1 DESC
とすると、string1に必ず文字が入っていれば、長い順になりますが、入っていないと正しく並び替えられません。
今回はCASE式を使って、
SELECT CASE WHEN char_length(string1) IS NULL THEN 0 ELSE char_length(string1) end AS len1 , * FROM test ORDER BY len1 DESC
として、目的どおりの並び順にしました。
他のデータベースでも似たような関数があるので、似たような書き方ができると思います。