我想知道是否可能在连接的SQL语句上完成字符串替换。例如,我的查询是:
SELECT (SITE_NAME || ', ' || LOT_NUMBER || ' ' || UNIT_TYPE || ' ' || LEVEL_NUMBER
|| ' ' || UNIT_NUMBER || ' ' || ROAD_NUMBER_1 || ' ' || ROAD_NUMBER_2 || ' ' || ROAD_NAME
|| ' ' || ROAD_TYPE || ' ' || ROAD_SUFFIX || ', ' || SUBURB || ', ' || STATE) AS address
FROM ADDRESS_LOOKUP_TOOL
WHERE ADD_ID = :P1_ADD_ID;
此语句完美运行....提供每个单一地址字段。如果仅填充了某些部分(即没有站点名称或道路后缀),则还有其他逗号或空格。
这是一个很好的选择的例子:
House of Dom, Lot 1 Suite 4 4D 119 Fake St South, Domtopia, QLD
这是一个有缺陷的选择的例子:
, Lot 1 Suite 4 4D 119 Fake St , Domtopia, QLD
是否可以在我可以说的别名上进行字符串替换,例如replace(address, ' ,', ',')
(其中“空格逗号”只是变成“逗号”),或者有更好的方法我应该构建我的选择一次性选择这个?
另外需要注意的是:如果这有所不同,可以在Oracle的Application Express(ApEx)中完成。
我对SQL很新,所以如果我提出任何基本的后续问题,我会提前道歉!
谢谢!
星
答案 0 :(得分:0)
您不需要在别名上执行此操作。只是在表达本身上做。
SELECT REPLACE(
(SITE_NAME || ', ' || LOT_NUMBER || ' ' || UNIT_TYPE || ' ' || LEVEL_NUMBER
|| ' ' || UNIT_NUMBER || ' ' || ROAD_NUMBER_1 || ' ' || ROAD_NUMBER_2 || ' ' || ROAD_NAME
|| ' ' || ROAD_TYPE || ' ' || ROAD_SUFFIX || ', ' || SUBURB || ', ' || STATE),
' ,', ',') AS address
FROM ADDRESS_LOOKUP_TOOL
WHERE ADD_ID = :P1_ADD_ID;