表:
CANADA 美国 南非
我需要写一个查询来检查出现在街道或城市的国家/地区名称不是国家/地区。方案如下:
我有一些国家名称的街道,如'加拿大角',其中加拿大是国名。早期的程序员将输入分为'canada','corner'并使用instr来检查这个
select * from country hrcm WHERE instr(:ls_name,lower(hrcm.country_name))> 0
类似地,其他可能的场景也是如此 '千街',其中美国是字符串'thou'usa'nd'的国家名称。但是如何纠正这一点。
答案 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_value
为usa
时:
STRNAME
----------------
当:your_value
为canada
时:
STRNAME
----------------
当:your_value
为south africa
时:
STRNAME
----------------
'south','africa'