请教大侠有关 when,case 关键字 在SQL中的写法,感激不尽啊…… 更正一下,表A,B是由A.A_a B.A_a关联起来的 , 很不好意思啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CASE计算条件列表并返回多个可能结果表达式之一。 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 值。 示例 select a.A_a,a.A_b, case (b.A_a is Null) when true‘是’else ‘否’end then from a left outer join b on A.A_a = B.A_a select case when A.A_a = B.A_a then '是' else '否' end from a left join b on a.a_a=b.a_a select a.a_a, a.a_b,(case when a.a_a=b.a_a then 'yes' else 'no' end) yesorno from a ,b select (case when B.A_a is null then '否' else '是' end )from a left join b on a.a_a=b.a_a pengdali(大力 V3.0) 你写的SQL 语句只能显示 是 和否当要求是将 A.A_a, A.A_b 也显示出来我也不知道 A.A_a, A.A_b 字段应该放到哪个地方,还是调不出来多谢指点不过我还是要先揭帖 哈哈…… 不行, 现在还不 可以揭帖我刚才把楼上的SQL语句都试了一下,不行啊有的的确可以显示 ‘是’‘否’但是另外两个字段没有显示出来 Rotaxe(程序员)查询结果有重复的还望大家多多指教啊…… select A_a,A_b, case when A_a in(select A_a from B) then‘是’else‘否’end then from a 应该是select A_a,A_b, case when A_a in(select A_a from B) then‘是’else‘否’end from a sql server 数据导入到 visual foxpro 这个SQL语句怎么写? sql server 登录的时候,每次都要更新sa密码才行。怎么回事呢? 请邹健老大回答谢谢 数据库系统表损坏,请教解决办法 为什么我的数据库登陆总是失败? 这个问题我该怎么解决啊? 看!!!!!!! sql server error 请帮忙看看这个过程 如何像GOOGLE一样,检索全文,然后只返回命中词的前后各100个字的内容? 有这么一个问题!
CASE
计算条件列表并返回多个可能结果表达式之一。 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 值。
示例
select a.a_a, a.a_b,(case when a.a_a=b.a_a then 'yes'
else 'no' end) yesorno from a ,b
from a left join b on a.a_a=b.a_a
你写的SQL 语句只能显示 是 和否
当要求是将 A.A_a, A.A_b 也显示出来
我也不知道 A.A_a, A.A_b 字段应该放到哪个地方,还是调不出来
多谢指点不过我还是要先揭帖 哈哈……
我刚才把楼上的SQL语句都试了一下,不行啊
有的的确可以显示 ‘是’‘否’但是另外两个字段没有显示出来
Rotaxe(程序员)查询结果有重复的
还望大家多多指教啊……
when A_a in(select A_a from B) then‘是’
else‘否’end then from a
when A_a in(select A_a from B) then‘是’
else‘否’end from a