SELECT 1 FROM dual where trim('X ') = 'X'
1 を与えます。
SELECT 1 FROM dual where trim(' ') = ''
行を与えません。
field
空白が正規表現に達していないすべての行を選択する簡単な方法はありますか?
TRIM を「だまして」 TRIMming' '
して与える方法はあり''
ますか?
Oracle では、空の文字列は NULLです。したがって、従来のアプローチは次のようなものになります
SELECT 1
FROM dual
WHERE trim(' ') IS NULL
もちろん、列が である結果も返されますNULL
。列が非 NULL で、スペースだけで構成されている場合が必要な場合
SQL> ed
Wrote file afiedt.buf
1 with t as (
2 select 1 id, ' ' str from dual union all
3 select 2, null from dual union all
4 select 3, 'a' from dual
5 )
6 select *
7 from t
8 where trim(str) is null
9* and str is not null
SQL> /
ID S
---------- -
1
regexp_like
シンプルなものも使いたい場合は、答えを締めくくるだけです
SQL> ed
Wrote file afiedt.buf
1 with t as (
2 select 1 id, ' ' str from dual union all
3 select 2, null from dual union all
4 select 3, 'a ' from dual
5 )
6 select *
7 from t
8* where regexp_like( str, '^[[:space:]]+$' )
SQL> /
ID ST
---------- --
1