SQLSERVERca的⽤法及实例
1. 官⽅释义
计算条件表达式,并返回多个可能的结果表达式之⼀。
CASE 简单表达式,它通过将表达式与⼀组简单的表达式进⾏⽐较来确定结果。
CASE 搜索表达式,它通过计算⼀组布尔表达式来确定结果。
这两种格式都⽀持可选的 ELSE 参数。
n卡驱动更新CASE 可⽤于允许使⽤有效表达式的任意语句或⼦句。 例如,可以在 SELECT、UPDATE、DELETE 和 SET 等语句以及 lect_list、IN、WHERE、ORDER BY 和 HAVING 等⼦句中使⽤ CASE
2. 语法定义
CASE简单表达式:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE el_result_expression ]
END
CASE搜索表达式:
卸载360安全卫士CASE
化石是怎么形成的WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE el_result_expression ]
孕妇能吃青枣吗END
参数说明
input_expression
使⽤简单 CASE 格式时计算的表达式。 input_expression 是任何有效的表达式。
WHEN when_expression
使⽤简单 CASE 格式时要与 input_expression 进⾏⽐较的简单表达式。 when_expression 是任何有效的表达式。 input_expression 及每个 when_expression 的数据类型必须相同或必须是隐式转换的数据类型。
THEN result_expression
想看见你的笑当 input_expression = when_expression 的计算结果为 TRUE 时,或 Boolean_expression 的计算结果为 TRUE 时返回的表达式。result expression 是任何有效的表达式。
ELSE el_result_expression
⽐较运算计算结果不为 TRUE 时返回的表达式。 如果忽略此参数且⽐较运算计算结果不为 TRUE,则 CASE 返回 NULL。
与谁同坐轩el_result_expression 是任何有效的表达式。 el_result_expression 及任何 result_expression 的数据类型必须相同或必须是隐式转换的数据类型。
WHEN Boolean_expression
使⽤ CASE 搜索格式时所计算的布尔表达式。 Boolean_expression 是任何有效的布尔表达式。
3. ca实例
A. 使⽤带有 CASE 简单表达式的 SELECT 语句[CASE 简单表达式只能⽤于等同性检查,⽽不进⾏其他⽐较] SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
B. 使⽤带有 CASE 搜索表达式的 SELECT 语句[CASE 搜索表达式允许根据⽐较值替换结果集中的值] SELECT ProductNumber, Name, "Price Range" =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Production.Product
ORDER BY ProductNumber ;
C. 在 ORDER BY ⼦句中使⽤ CASE
水浒传的人物SELECT BusinessEntityID, SalariedFlag
FROM HumanResources.Employee
ORDER BY CASE SalariedFlag WHEN 1 THEN BusinessEntityID END DESC
湘潭市博物馆,CASE WHEN SalariedFlag = 0 THEN BusinessEntityID END;
SELECT BusinessEntityID, LastName, TerritoryName, CountryRegionName
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL
ORDER BY CASE CountryRegionName WHEN 'United States' THEN TerritoryName
ELSE CountryRegionName END;