SQL Server IIF와 CASE


87

최근 IIF에 SQL Server 2012 의 기능 가용성에 대해 알게 되었습니다. 저는 항상 CASE쿼리에 중첩 을 사용 합니다. IIF문장 의 정확한 목적 과 쿼리에서 Statement IIF보다 사용하는 것을 선호해야하는시기 를 알고 싶습니다 CASE. 나는 주로 CASE내 쿼리에 중첩 을 사용 합니다.

모든 입력에 감사드립니다.


9
IIF는 단순한 CASE 문에 대한 속기 일뿐입니다. 쿼리 최적화 및 실행을위한 case 문으로도 변환됩니다. technet.microsoft.com/en-us/library/hh213574.aspx
Sam DeHaan 2014

읽기가 훨씬 쉽기 때문에 속기가 표준의 일부가 아닌 것은 부끄러운 일입니다 (요즘은 무엇입니까? ANSISQL?). 그러나 그때 T-SQL은 항상 약간 ... "소문"이었습니다.
Neil Barnwell

답변:


144

IIF와 동일합니다 CASE WHEN <Condition> THEN <true part> ELSE <false part> END. 쿼리 계획은 동일합니다. 아마도 처음에 구현 된 "구문 적 설탕"일 것입니다.

CASE는 모든 SQL 플랫폼에서 이식 가능하지만 IIF는 SQL SERVER 2012+에만 해당됩니다.


6
아마도 Access / VB 개발자가 구문을 더 쉽게 기억할 수 있도록 만들 것입니다.
재미 - 이름 - 여기

20

IIF는 비표준 T-SQL 함수입니다. SQL SERVER 2012에 추가되었으므로 Access는 IIF를 CASE로 미리 리팩토링하지 않고도 SQL Server로 마이그레이션 할 수 있습니다. Access db가 SQL Server로 완전히 마이그레이션되면 리팩터링 할 수 있습니다.


13
나는 당신의 추론을 좋아합니다. 문서를 인용하여 지원할 수 있습니까?
Peter Ivan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.