如何在Oracle中定义默认转义符?

gg0vcinb  于 2023-03-17  发布在  Oracle
关注(0)|答案(4)|浏览(158)

我有table

id  name
__________
1   name1
2   name2
3   _name3

我想选择所有以“_”字符开头的名称。

SELECT name FROM table1 WHERE name like '_%'

但是这个查询返回表中的所有行。也许有人知道这个问题的一些解决方案(不使用ESCAPE关键字)?或者,有机会在Oracle中设置默认转义字符吗?

js4nwp54

js4nwp541#

显然,你不能:

char1 [ NOT ] { LIKE | LIKEC | LIKE2 | LIKE4 }
  char2 [ ESCAPE esc_char ]

[...]
如果未指定esc_char,则没有默认转义符

mf98qq94

mf98qq942#

我想选择所有名称,以“_”字符开头。
使用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>
piztneat

piztneat3#

试试这个

select * from table1 where regexp_like (name,'^_') ;
7jmck4yq

7jmck4yq4#

SELECT name FROM table1 WHERE name like '\_%' escape '\'

相关问题