> 데이터 베이스 > MySQL 튜토리얼 > CASE 문을 사용하여 SQL WHERE 절에서 데이터를 동적으로 필터링하려면 어떻게 해야 합니까?

CASE 문을 사용하여 SQL WHERE 절에서 데이터를 동적으로 필터링하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2025-01-10 07:15:45
원래의
363명이 탐색했습니다.

How Can I Use a CASE Statement to Filter Data Dynamically in a SQL WHERE Clause?

SQL WHERE 절의 CASE 문

SQL에서 CASE 문은 조건부 평가 메커니즘을 제공합니다. 이를 통해 다양한 조건을 지정하고 이러한 조건에 따라 해당 수치 값을 반환할 수 있습니다. 이는 WHERE 절에서 다양한 조건에 따라 데이터를 필터링하는 데 특히 유용합니다.

다음 시나리오를 가정해 보세요. 위치 유형 매개변수 "@locationType" 및 위치 ID 매개변수 "@locationID"의 값을 기반으로 "viewWhatever"라는 뷰에서 데이터를 검색해야 합니다. 위치 유형은 '위치', '지역' 또는 '구분'일 수 있습니다.

CASE 문 사용

WHERE 절의 CASE 문을 사용하여 이 기능을 구현하려면 다음과 같이 쿼리를 작성할 수 있습니다.

<code class="language-sql">SELECT column1, column2
FROM viewWhatever
WHERE
@locationID = 
  CASE @locationType
      WHEN 'location' THEN account_location
      WHEN 'area' THEN xxx_location_area 
      WHEN 'division' THEN xxx_location_division 
  END</code>
로그인 후 복사

설명

  • CASE 문은 WHERE 키워드 뒤에 위치합니다.
  • "@locationType" 값을 조건 변수로 평가합니다.
  • 각 WHEN 절에 대해 위치 유형에 따라 "@locationID"와 동일한지 확인할 열을 지정합니다.
  • END 키워드는 CASE 문을 종료합니다.

중복된 ​​등호 연산자 피하기

제공된 예에서는 각 WHEN 절 끝에 있는 "=@locationID" 부분이 올바르지 않습니다. CASE 문 자체는 "@locationID"와 비교할 올바른 열을 할당합니다.

동적 SQL

쿼리 작성 시 위치 유형과 열 이름을 알 수 없는 경우 저장 프로시저나 동적 SQL을 사용하여 즉시 CASE 문을 작성할 수 있습니다.

위 내용은 CASE 문을 사용하여 SQL WHERE 절에서 데이터를 동적으로 필터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿