"COALESCE", "IIF" 및 "CASE" 입력 표현식에는 하위 쿼리가 포함되어서는 안 됩니다



COALESCE 및 IIF(내부적으로 CASE 표현식으로 평가)와 CASE 입력 표현식은 하위 쿼리와 함께 사용하면 안 됩니다. 하위 쿼리는 표현식의 각 옵션에 대해 한 번만 평가되고 각 평가는 옵션에 따라 다른 결과를 반환할 수 있기 때문입니다. 격리 수준. 일관된 결과를 보장하려면 SNAPSHOT ISOLATION 격리 수준을 사용하세요. 일관된 결과 와 더 나은 성능을 보장하려면 하위 쿼리를 표현식 밖으로 이동하세요. COALESCE를 ISNULL로 바꾸는 옵션이기도 합니다. 나쁜 예: CASE WHEN (SELECT COUNT(*) FROM A) > 0 THEN (SELECT COUNT(*) FROM A) + 42 ... ELSE otherExpression END 좋은 예: SET @a = SE..


원문링크 : "COALESCE", "IIF" 및 "CASE" 입력 표현식에는 하위 쿼리가 포함되어서는 안 됩니다