2016-06-17 4 views
0

조인 된 SQL 문에서 문자열 대체를 완료 할 수 있는지 궁금합니다. 예를 들어, 내 쿼리는 다음과 같습니다문자열 조인 된 SQL SELECT 문을 대체하십시오.

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; 

이 문마다 하나의 주소 필드가 채워집니다 제공 .... 완벽하게 작동합니다. 일부 섹션 만 채워지는 경우 (즉, 사이트 이름이나 도로 접미어가없는 경우)에는 쉼표 나 공백이 추가됩니다.

, Lot 1 Suite 4 4D 119 Fake St , Domtopia, QLD

그것은 아마도 문자열에 대체 할 수 있나요 :

여기 House of Dom, Lot 1 Suite 4 4D 119 Fake St South, Domtopia, QLD

는 결함이 선택의 예입니다 : 여기

좋은 예는 선택이다 예를 들어, replace(address, ' ,', ',') ("쉼표"가 "쉼표"로 바뀌는 곳)와 같은 별칭 또는 내가 선택한 것을 선택하여 구조화해야하는 더 좋은 방법이 있습니까?

추가 참고 사항 : 이것이 다를 경우 Oracle의 Application Express (ApEx)에서 모두 완료되었습니다.

저는 SQL에 매우 익숙합니다. 따라서 기본적인 후속 질문을하면 사전에 사과드립니다!

감사합니다.

도미니크

답변

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; 
관련 문제