SELECT 1 FROM dual where trim('X ') = 'X'
Run Code Online (Sandbox Code Playgroud)
给1.
SELECT 1 FROM dual where trim(' ') = ''
Run Code Online (Sandbox Code Playgroud)
没有行.
有没有一种简单的方法可以选择field空格不足正则表达式的所有行?
有没有办法"欺骗"TRIM进行TRIMM ' '和给予''?
在Oracle中,空字符串为NULL.所以传统方法就是这样的
SELECT 1
FROM dual
WHERE trim(' ') IS NULL
Run Code Online (Sandbox Code Playgroud)
当然,这也将返回列所在的结果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
Run Code Online (Sandbox Code Playgroud)
只是让这个答案,如果你想用一个简单的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
Run Code Online (Sandbox Code Playgroud)