집 >데이터 베이스 >MySQL 튜토리얼 >SQL의 WHERE 절에서 조건부 논리(IF/CASE)를 어떻게 사용할 수 있습니까?
SQL WHERE 절의 동적 데이터 필터링
SQL은 IF
절 내의 WHERE
문을 직접 지원하지 않지만 대체 방법을 사용하여 조건부 필터링을 구현할 수 있습니다. 이를 통해 특정 조건에 따라 유연한 데이터 검색이 가능합니다.
CASE 진술 접근 방식:
CASE
문은 데이터를 조건부로 필터링하는 강력한 방법을 제공합니다. 조건을 평가하고 결과에 따라 값을 반환합니다. WHERE
절 내에서는 다음과 같습니다.
<code class="language-sql">WHERE field LIKE CASE WHEN condition THEN result ELSE result END</code>
예를 들어 @OrderNumber
이 숫자인지 여부를 기준으로 필터링한다고 가정해 보겠습니다. 숫자인 경우 정확한 일치를 사용합니다. 그렇지 않으면 와일드카드 검색을 사용하세요.
<code class="language-sql">WHERE OrderNumber LIKE CASE WHEN IsNumeric(@OrderNumber) = 1 THEN @OrderNumber ELSE '%' + @OrderNumber + '%' END</code>
IF를 사용한 조건부 할당(절차적 접근 방식):
또 다른 방법은 WHERE
절 외부에서 조건부 할당을 사용하여 필터링 값을 준비하는 것입니다. 이는 보다 절차적인 접근 방식입니다.
<code class="language-sql">IF condition SET field = value; ELSE SET field = value;</code>
이를 @OrderNumber
예시에 적용:
<code class="language-sql">IF IsNumeric(@OrderNumber) = 1 SET @OrderNumber_Filtered = @OrderNumber; ELSE SET @OrderNumber_Filtered = '%' + @OrderNumber + '%';</code>
그런 다음 @OrderNumber_Filtered
절에 WHERE
을 사용하세요.
<code class="language-sql">WHERE OrderNumber LIKE @OrderNumber_Filtered;</code>
CASE
절 내의 WHERE
과 WHERE
절 앞의 조건부 할당은 모두 데이터 필터링을 위한 조건부 논리를 구현하는 효과적인 방법을 제공하여 SQL 쿼리의 성능과 적응성을 향상시킵니다.
위 내용은 SQL의 WHERE 절에서 조건부 논리(IF/CASE)를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!