在sql中搜索条件

时间:2017-04-26 11:50:48

标签: sql oracle

表:

国家

CANADA 美国 南非

我需要写一个查询来检查出现在街道或城市的国家/地区名称不是国家/地区。方案如下:

我有一些国家名称的街道,如'加拿大角',其中加拿大是国名。早期的程序员将输入分为'canada','corner'并使用instr来检查这个

select * from country hrcm WHERE instr(:ls_name,lower(hrcm.country_name))> 0

类似地,其他可能的场景也是如此 '千街',其中美国是字符串'thou'usa'nd'的国家名称。但是如何纠正这一点。

2 个答案:

答案 0 :(得分:0)

你的问题非常字面,因为你提供的信息不够充足,但只是为了好玩,你去了;

WHERE REPLACE(REPLACE(leftSide, '''', ''), ',',' ') = REPLACE(rightSide, '''', '')

这将替换所有引号并将逗号转换为空格:)

答案 1 :(得分:0)

Oracle安装程序

CREATE TABLE your_table ( strname ) AS 
  SELECT '''thousand''' FROM DUAL UNION ALL
  SELECT '''canada'',''tower''' FROM DUAL UNION ALL
  SELECT '''south'',''africa''' FROM DUAL;

<强>查询

SELECT *
FROM   your_table
WHERE  strname = '''' || REPLACE( :your_value, ' ', ''',''' ) || ''''

<强>输出

:your_valueusa时:

STRNAME
----------------

:your_valuecanada时:

STRNAME
----------------

:your_valuesouth africa时:

STRNAME
----------------
'south','africa'