电脑安全

您当前的位置:主页 > 电脑安全 >

sql case then else的用法-网络编程

来源:[db:来源]标题:   表达式    编辑:电脑技术全能网 时间:2019-09-18 16:49

原标题:sql case then else的用法-网络编程
   CASE 存在两种格局:简略 CASE 函数将某个表白式与一组简略表白式停止比拟以断定成果。CASE 搜寻函数盘算一组布尔表白式以断定成果。两种格局都支撑可选的 ELSE 参数。语法简略 CASE 函数:CASE input_expression WHEN when_expression THEN result_expression [ ...n ] [ ELSE else_result_expression ENDCASE 搜寻函数:CASE WHEN Boolean_expression THEN result_expression [ ...n ] [ ELSE else_result_expression END参数input_expression是应用简略 CASE 格局时所盘算的表白式。Input_expression 是任何无效的 Microsoft® SQL Server™ 表白式。WHEN when_expression应用简略 CASE 格局时 input_expression 所比拟的简略表白式。When_expression 是恣意无效的 SQL Server 表白式。Input_expression 和每个 when_expression 的数据范例必需雷同,或许是隐性转换。n占位符,标明能够应用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。THEN result_expression当 input_expression = when_expression 取值为 TRUE,或许 Boolean_expression 取值为 TRUE 时前往的表白式。result expression 是恣意无效的 SQL Server 表白式。ELSE else_result_expression当比拟运算取值不为 TRUE 时前往的表白式。假如省略此参数而且比拟运算取值不为 TRUE,CASE 将前往 NULL 值。Else_result_expression 是恣意无效的 SQL Server 表白式。Else_result_expression 和全部 result_expression 的数据范例必需雷同,或许必需是隐性转换。WHEN Boolean_expression应用 CASE 搜寻格局时所盘算的布尔表白式。Boolean_expression 是恣意无效的布尔表白式。成果范例从 result_expressions 和可选 else_result_expression 的范例聚集中前往最高的优先规矩范例。无关更多信息,请拜见数据范例的优先次序。成果值简略 CASE 函数:盘算 input_expression,而后按指定次序对每个 WHEN 子句的 input_expression = when_expression 停止盘算。前往第一个取值为 TRUE 的 (input_expression = when_expression) 的 result_expression。假如没有取值为 TRUE 的 input_expression = when_expression,则当指定 ELSE 子句时 SQL Server 将前往 else_result_expression;若没有指定 ELSE 子句,则前往 NULL 值。CASE 搜寻函数:按指定次序为每个 WHEN 子句的 Boolean_expression 求值。前往第一个取值为 TRUE 的 Boolean_expression 的 result_expression。假如没有取值为 TRUE 的 Boolean_expression,则当指定 ELSE 子句时 SQL Server 将前往 else_result_expression;若没有指定 ELSE 子句,则前往 NULL 值--简略Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其余' END--Case搜寻函数CASE WHEN sex = '1' THEN '男'WHEN sex = '2' THEN '女'ELSE '其余' END这两种方法,能够完成雷同的功效。简略Case函数的写法绝对比拟简练,然而和Case搜寻函数比拟,功效方面会有些限度,比方写推断式。另有一个须要留神的成绩,Case函数只前往第一个合乎前提的值,剩下的Case局部将会被主动疏忽。例子:有一张表,外面有3个字段:语文,数学,英语。此中有3笔记录分辨表现语文70分,数学80分,英语58分,请用一条sql语句查问出这三笔记录并按以下前提表现进去(并写出您的思绪):大于或即是80表现优良,大于或即是60表现合格,小于60分表现不迭格。表现格局:语文 数学 英语合格 优良 不迭格------------------------------------------select(case when 语文>=80 then '优良'when 语文>=60 then '合格'else '不迭格') as 语文,(case when 数学>=80 then '优良'when 数学>=60 then '合格'else '不迭格') as 数学,(case when 英语>=80 then '优良'when 英语>=60 then '合格'else '不迭格') as 英语,from tableCASE 能够是 SQL 中被误用最多的要害字之一。固然你能够从前用过这个要害字来创立字段,然而它还存在更多用法。比方,你能够在 WHERE 子句中应用 CASE。起首让咱们看一下 CASE 的语法。在个别的 SELECT 中,其语法以下:

SELECT <myColumnSpec> = CASE WHEN <A> THEN <somethingA> WHEN <B> THEN <somethingB> ELSE <somethingE> END在下面的代码中须要器具体的参数取代尖括号中的内容。上面是一个简略的例子:USE pubs GO SELECT Title, 'Price Range' = CASE WHEN price IS NULL THEN 'Unpriced' WHEN price < 10 THEN 'Bargain' WHEN price BETWEEN 10 and 20 THEN 'Average' ELSE 'Gift to impress relatives' END FROM titles ORDER BY price GO这是 CASE 的典范用法,然而应用 CASE 实在能够做更多的事件。比喻说上面的 GROUP BY 子句中的 CASE:SELECT 'Number of Titles', Count(*) FROM titles GROUP BY CASE WHEN price IS NULL THEN 'Unpriced' WHEN price < 10 THEN 'Bargain' WHEN price BETWEEN 10 and 20 THEN 'Average' ELSE 'Gift to impress relatives' END GO

上一篇:PHP中自增自减运算-网络编程

下一篇:没有了