SQL Server의 조건부 WHERE 절
질문:
동적 SQL을 사용하거나 다른 절을 사용하여 여러 쿼리를 생성하지 않고 SQL Server에서 조건부 WHERE 절을 구현하는 방법은 무엇입니까?
정답:
다음 방법을 사용할 수 있습니다.
<code class="language-sql">SELECT DateAppr, TimeAppr, TAT, LaserLTR, Permit, LtrPrinter, JobName, JobNumber, JobDesc, ActQty, (ActQty-LtrPrinted) AS L, (ActQty-QtyInserted) AS M, ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS N FROM [test].[dbo].[MM] WHERE DateDropped = 0 AND ( (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) OR (ISNULL(@JobsOnHold, 0) <> 1 AND DateAppr <> 0) )</code>
이 쿼리에서:
ISNULL()
함수는 @JobsOnHold
매개변수가 비어 있는지 확인하고 비어 있으면 0을 반환합니다. @JobsOnHold
매개변수의 값을 확인합니다. 값이 1인 경우 DateAppr
열은 0보다 크거나 같아야 합니다. 값이 1이 아닌 경우 DateAppr
열은 0이 아니어야 합니다. AND
연산자는 두 조건이 모두 충족되는지 확인합니다. 이 접근 방식을 사용하면 단일 쿼리와 조건부 WHERE 절을 사용하여 매개변수 값을 기준으로 결과를 필터링할 수 있습니다. 이는 여러 쿼리나 동적 SQL을 사용하는 것보다 이러한 쿼리를 작성하는 더 효율적이고 간결한 방법입니다.
위 내용은 동적 SQL 없이 SQL Server에서 조건부 WHERE 절을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!