SQL은case/when/then/else/end 표현을 가지고 있으며, 이것은SQL-92에서 도입되었다. 일반적인 형식에서, 이것은 SQL 표준에서 "searched case"라고 불리며, 다른 프로그램 언어에서else if와 같은 역할을 수행한다:
CASEWHENn>0THEN'positive'WHENn<0THEN'negative'ELSE'zero'END
WHEN 조건은 소스에서 등장하는 순서에서 시험된다. 아무런ELSE 표현식이 지정되지 않으면,ELSE NULL을 기본값으로 하게 된다.switch statement을 미러링하는 약어 구문도 존재한다. 이것은 SQL 표준에서 "simple case"라고 불린다:
CASEnWHEN1then'one'WHEN2THEN'two'ELSE'i cannot count that high'END
이 구문은NULL과 비교하는 통상적인 경고를 이용하여 내포적 특질 비교를 이용한다.
오라클 SQL 구문에서 후자는DECODE 구문으로 축약될 수 있다:
SELECTDECODE(n,1,"one",2,"two","i cannot count that high")FROMsome_table;
마지막 값은 default이다; 아무것도 지정되지 않으면,NULL이 기본값이 된다. 그러나 표준 "simple case"와는 달리 오라클의DECODE는 2개의NULL을 서로 동일한 것으로 간주한다.[9]