>데이터 베이스 >MySQL 튜토리얼 >CASE 및 IIF를 사용하여 SQL SELECT 문에서 조건부 논리를 어떻게 구현할 수 있습니까?

CASE 및 IIF를 사용하여 SQL SELECT 문에서 조건부 논리를 어떻게 구현할 수 있습니까?

DDD
DDD원래의
2025-01-22 15:06:14320검색

How Can I Implement Conditional Logic in SQL SELECT Statements using CASE and IIF?

SQL SELECT 문의 조건부 논리 익히기: CASE 및 IIF

SQL SELECT 문 내에서 조건부 논리를 효율적으로 관리하는 것은 데이터 조작 및 필터링에 매우 중요합니다. 표준 SQL에서는 직접 IF...THEN 구문을 사용할 수 없지만 CASE 문과 IIF(SQL Server Denali 이상 버전)은 강력한 대안을 제공합니다.

CASE 문: SQL 조건부 주력

CASE 문은 IF...THEN의 기능을 반영하여 조건을 순차적으로 평가하고 첫 번째 참 조건을 기반으로 값을 반환합니다. 구조는 다음과 같습니다.

<code class="language-sql">SELECT
  CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE default_value
  END AS <alias>,  -- Assign an alias to the result
  *
FROM <table_name></code>

이러한 실제 적용을 고려해보세요.

<code class="language-sql">SELECT CAST(
  CASE
    WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
    ELSE 0
  END AS bit) AS Saleable,  -- Casts the result as a BIT (Boolean)
  *
FROM Product</code>

CAST 연산자에 주목하세요. 이것이 없으면 결과는 정수(0 또는 1)입니다. CAST을 사용하면 부울(TRUE 또는 FALSE)로 변환됩니다.

IIF: 간결한 조건부 옵션(SQL Server)

SQL Server는 IIF:CASE에 대한 보다 간결한 대안을 제공하는

(즉시 If) 문을 도입했습니다.
<code class="language-sql">SELECT IIF(condition, true_value, false_value) AS <alias>,
  *
FROM <table_name></code>

이 예에 적용되는 방법은 다음과 같습니다.

<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable,
  *
FROM Product</code>

CASEIIF는 모두 SQL SELECT 쿼리에서 조건부 논리를 구현하고 동적 데이터 조작과 효율적인 필터링을 지원하는 데 없어서는 안 될 도구입니다.

위 내용은 CASE 및 IIF를 사용하여 SQL SELECT 문에서 조건부 논리를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.