我正在尝试使 NLSSORT 与单字符通配符一起使用。
create table alex_test(col1 varchar2(20))
insert into alex_test values('test')
insert into alex_test values('fast')
select col1 from alex_test where col1 like '__st'
select col1 from alex_test where col1 like '__' || 'st'
上面的语句插入了'test'和'fast',两个select语句都返回了两行。
select col1 from alex_test where NLSSORT(col1, 'NLS_SORT=generic_m_ai') like '%' || NLSSORT('st', 'NLS_SORT=generic_m_ai')
上面的语句也返回两行。
但是,这两个语句不返回行:
select col1 from alex_test where NLSSORT(col1, 'NLS_SORT=generic_m_ai') like '__' || NLSSORT('st', 'NLS_SORT=generic_m_ai')
select col1 from alex_test where NLSSORT(col1, 'NLS_SORT=generic_m_ai') like NLSSORT('__st', 'NLS_SORT=generic_m_ai')
有没有办法让它以某种方式工作?用 '%' 匹配多个字符似乎很奇怪,但用 '_' 匹配单个字符不起作用。