我有table
id name __________ 1 name1 2 name2 3 _name3
我想选择所有以“_”字符开头的名称。
SELECT name FROM table1 WHERE name like '_%'
但是这个查询返回表中的所有行。也许有人知道这个问题的一些解决方案(不使用ESCAPE关键字)?或者,有机会在Oracle中设置默认转义字符吗?
js4nwp541#
显然,你不能:
char1 [ NOT ] { LIKE | LIKEC | LIKE2 | LIKE4 } char2 [ ESCAPE esc_char ]
[...]如果未指定esc_char,则没有默认转义符。
esc_char
mf98qq942#
我想选择所有名称,以“_”字符开头。使用SUBSTR。
SUBSTR
SQL> WITH DATA AS( 2 SELECT 1 ID, 'name1' NAME FROM dual UNION ALL 3 SELECT 2, 'name2' FROM dual UNION ALL 4 SELECT 3 , '_name3' FROM dual 5 ) 6 SELECT * FROM DATA 7 WHERE substr(NAME, 1, 1) = '_' 8 / ID NAME ---------- ------ 3 _name3 SQL>
piztneat3#
试试这个
select * from table1 where regexp_like (name,'^_') ;
7jmck4yq4#
SELECT name FROM table1 WHERE name like '\_%' escape '\'
4条答案
按热度按时间js4nwp541#
显然,你不能:
[...]
如果未指定
esc_char
,则没有默认转义符。mf98qq942#
我想选择所有名称,以“_”字符开头。
使用
SUBSTR
。piztneat3#
试试这个
7jmck4yq4#