열이있는 경우 열의 값을 선택할 수 있는지, 아니면 그렇지 않으면 null을 선택하는지 궁금합니다. 즉, 열이 존재하지 않을 때 case를 처리하기 위해 select 문을 "들어 올리"하고 싶습니다.열이 없으면 columnValue를 선택하십시오. null
SELECT uniqueId
, columnTwo
, /*WHEN columnThree exists THEN columnThree ELSE NULL END*/ AS columnThree
FROM (subQuery) s
참고로, 저는 데이터 모델과 디자인을 고수하는 중입니다. 나는이 논리를 앞으로 몇 주간에 배제하기를 희망하지만, 데이터 모델 수정은 내가 지금 다루고 싶은 것보다 시간이 많이 걸리는 노력이기 때문에이 문제를 넘어서고 싶습니다.
참고, 한 가지 쿼리에서이 작업을 수행 할 수 있습니다. 그래서 나는 대답을 찾고 있지 않다.
먼저 하위 쿼리에 어떤 열이 있는지 확인하십시오. 그런 다음 하위 쿼리의 열을 적절히 처리하도록 쿼리를 수정하십시오.
왜 데이터 모델이 쓸데없는 것일 것이라고 가정하는 코드를 작성하고 있습니까? 이제 존재하는 열을 코딩하지 않고 ColumnThree가 데이터 모델의 영구적 인 1 급 시민이 될 때 쿼리를 수정해야하는 이유는 무엇입니까? 또한 나는 사람들에게 당신이 찾고 있지 않은 것을 말하지 않기를 강력히 권한다.명시된대로 귀하의 제한 사항을 충족시킬 수 없으며, 귀하는 그 이상의 더 나은 이유를 제시해야합니다. 저장 프로 시저에있는 것들을 캡슐화 할 수있을 때 "하나의 쿼리"에는 거의 의미가 없습니다. –
@AaronBertrand 당신은 두 가지 질문을했습니다. 우선, 내 목표는 가능한 한 빨리 고품질 기능을 제공하는 것입니다. 바로 지금 필자는 필자의 기능을 올바르게 작동시키기 위해 존재할 때'ColumnThree'의 값을 필요로합니다. 그래서 솔루션이 우아하지 않더라도 컬럼이 있으면 사용할 것입니다. –
@AaronBertrand 둘째, 귀하의 권고에 감사하지만 정중하게 동의하지 않습니다. 내 요구 사항을 명확하게 표현하여 사용자가 내 문제를 해결하는 솔루션을 제안하는 데 집중할 수 있도록하고, 내가 아는 답변을 작성하여 시간을 낭비하지 않도록합니다. 나는 만족스러운 대답이 아닐 것이라고 정확히 말하는 것은 솔루션을 사용하는 동안 사용자가 더 많은 가치에 집중하는 데 도움이된다고 생각합니다. –