제 프로그래밍 언어에서는이 작업을 수행 할 수 있지만 SQL 내부에서 수행하려고합니다. 따라서 프론트 엔드 코드를 방해하지 않아도됩니다.조건부 필드 선택 oracle
나는 name1, name2, name3이라는 세 개의 이름 필드가있는 테이블이 있습니다.
이 필드 중 일부 또는 전부에 임의의 값이있을 수 있습니다. 사상 최초의 필드 값을 가지고 FIRST_NAME, 사상 두 번째 필드 값이 second_name로 전환이 로 전환 -
나는 NAME3는, NAME2,
그것은 NAME1 확인합니다 것을 세 개의 필드와 같은 반환하는 쿼리를 원하는 그 다음에 third_field.
나는 first_name을 채우기위한 CASE-END 문을 쉽게 작성할 수 있지만 second_name에 대한 논리를 작성하면 점점 복잡해진다.
는 SQL :
이SELECT
CASE
WHEN NAME1 IS NOT NULL
THEN NAME1
ELSE
CASE
WHEN NAME2 IS NOT NULL
THEN NAME2
ELSE
CASE
WHEN NAME3 IS NOT NULL
THEN NAME1
ELSE ''
END
END
END FIRST_NAME
FROM TABLE_NAME
지금, 어떻게 second_name 및 third_name 처리하나요? 아니면 더 쉬운 방법입니까? 어떤 도움에 감사드립니다
..
당신, 선생님, 굉장합니다 !! 이 멋진 조각은 내가 필요로하는 것을 정확하게한다! 나는 당신이 테이블 구조와 물건에 대한 의미를 알고있다. 그러나 나는 수정할 수없는 너무 오래 된 레거시 시스템을 가지고있다. (프론트 엔드 코드를 다루지 않고 SQL 내부를 처리하지 않는 이유도있다.) 다시 한번 감사 드리며, 나는 당신의 대답을 두 번 이상 엄지 손가락으로 쥘 수 있었다! *행복* –