"CASE" 입력 표현식은 변하지 않아야 합니다



내부적으로는 단순 CASE 표현식이 검색된 CASE 표현식으로 평가됩니다. 그건, CASE @foo WHEN 1 THEN 'a' WHEN 2 THEN 'b' 실제로는 다음과 같이 평가된다. CASE WHEN @foo = 1 THEN 'a' WHEN @foo = 2 THEN 'b' 대부분의 상황에서 차이는 중요하지 않지만 입력 식이 고정되지 않은 경우(예: RAND()가 포함된 경우) 예상치 못한 결과가 발생할 가능성이 높습니다. 따라서 입력 표현식을 한 번 평가한 후 변수에 할당하고 해당 변수를 CASE의 입력 표현식으로 사용하는 것이 좋습니다. 이 규칙은 CASE 입력 표현식에 RAND, NEWID, CRYPT_GEN_RANDOM 중 하나가 사용될 때 문제를 발생시킵니다. 나쁜 예: CASE CONVE..


원문링크 : "CASE" 입력 표현식은 변하지 않아야 합니다