ただ迷走したので、備忘録を残しておきます。
一度は見たことがあるかもしれない下記表をご覧下さい。
No | Column1 |
---|---|
1 | ” “ |
2 | “” |
3 | Null |
1. 空白あり, 2. 空欄, 3. Null
Oracle (というか Column1 の型が VARCHAR2 である時(予防線))では、
sqlplus でSELECTすると、
SELECT * FROM Table1
—————-
1
2
3
※手抜きではない。
こういう風に見える(表示される)。
見た目は一緒だが、他の有名ページにもあるように
No.1 と 2 or 3 は明確に扱いが違う。
本題は, No.1 の空白だけのデータがあるレコードだけを抽出したい。
ただ、できたSELECT文を見ると、そう難しいこと・・・
いえ、非常に簡単である。
SELECT * FROM Table1
WHERE TRIM(Column1) IS NULL
AND LENGTH(Column1) > 0
空白を取り除いた文字が NULL である かつ、
取り除く前の文字列が 0 でない場合が
No.1 だけを取得する条件である。
(その発想に至るまでの過程は、置いといて。やめて、聞かないで。)