나는 org_name, add_line1, add_line2, add_line3을 사용하여 다른 줄에 넣었습니다.
(RTRIM(org_name) || CHR(32) || NVL2(RTRIM(org_name), CHR(32) || '\line' || CHR(32), '') ||
RTRIM(add_line1) || CHR(32) || NVL2(RTRIM(add_line1), CHR(32) || '\line' || CHR(32), '') ||
RTRIM(add_line2) || CHR(32) || NVL2(RTRIM(add_line2), CHR(32) || '\line' || CHR(32), '') ||
RTRIM(add_line3) || CHR(32) || NVL2(RTRIM(add_line3), CHR(32) || '\line' || CHR(32), '') || )AS "POSTAL_ADDRESS"
문제는 때때로 출력의 의미 org_name
와 동일 add_line1
합니다 .1과 2 행에서 이름을 두 번 얻고 있습니다.
내가 알아낼 수없는 것은 라인 출력이 라인 2 출력과 동일한 경우 이름을 한 번 표시하는 방법입니다.
누군가 나를 도와 줄 수 있습니까?
대소 문자를 구분하지 않고 공간 문제 비교가없는이 사용하여 할 수 regexp_like()
와 trim()
함께 기능 :
case when regexp_like(trim(org_name),trim(add_line1),'i')
then
org_name
else add_line1
end as org_name
또는POSTAL ADDRESS
문자열 연결 내에서 시도 할 수 있습니다.
select line_no, case when regexp_like(trim(org_name),trim(add_line1),'i') then
rtrim(org_name) || chr(32) || nvl2(rtrim(org_name), chr(32) || '\line' || chr(32), '')
else
rtrim(org_name) || chr(32) || nvl2(rtrim(org_name), chr(32) || '\line' || chr(32), '') ||
rtrim(add_line1)|| chr(32) || nvl2(rtrim(add_line1), chr(32)|| '\line' || chr(32), ''
)
end as "POSTAL_ADDRESS"
from tab
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다