收藏 分销(赏)

IsNull及CASEWHEN.doc

上传人:仙人****88 文档编号:7177951 上传时间:2024-12-27 格式:DOC 页数:3 大小:41.50KB 下载积分:10 金币
下载 相关 举报
IsNull及CASEWHEN.doc_第1页
第1页 / 共3页
IsNull及CASEWHEN.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
IsNull和CASE WHEN 1、ISNULL 使用指定的替换值替换NULL。 语法 ISNULL(check_expression,replacement_value) 参数 check_expression 将被检查是否为NULL的表达式。 check_expression可以是任何类型的。 replacement_value 在check_expression为NULL时将返回的表达式。 replacement_value 必须与check_expresssion 具有相同的类型。 返回类型 返回与check_expression 相同的类型。 注释 如果check_expression 不为NULL,那么返回该表达式的值;否则返回replacement_value。 示例 A.将ISNULL与AVG 一起使用 下面的示例查找所有书的平均价格,用值$10.00 替换titles 表的price 列中的所有NULL 条目。 USE pubs GO SELECT AVG(ISNULL(price, $10.00)) FROM titles GO 下面是结果集: -------------------------- 14.24 (1 row(s) affected) B. 使用ISNULL 下面的示例为titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是NULL,那么在结果集中显示的价格为0.00。 USE pubs GO SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type, ISNULL(price, 0.00) AS Price FROM titles GO 下面是结果集: Title Type Price --------------- ------------ -------------------------- The Busy Execut business 19.99 Cooking with Co business 11.95 You Can Combat business 2.99 Straight Talk A business 19.99 Silicon Valley mod_cook 19.99 The Gourmet Mic mod_cook 2.99 The Psychology UNDECIDED 0.00 But Is It User popular_comp 22.95 Secrets of Sili popular_comp 20.00 Net Etiquette popular_comp 0.00 Computer Phobic psychology 21.59 Is Anger the En psychology 10.95 Life Without Fe psychology 7.00 Prolonged Data psychology 19.99 Emotional Secur psychology 7.99 Onions, Leeks, trad_cook 20.95 Fifty Years in trad_cook 11.95 Sushi, Anyone? trad_cook 14.99 (18 row(s) affected) 2、SQL条件控制(case when...then...else...end) --1)在select 中使用 select count(*) as ct , CASE WHEN (Pro_state= 1) THEN '待审' WHEN (Pro_state= 2) THEN '已审' WHEN (Pro_state= 3) THEN '办理中' WHEN (Pro_state= 4) THEN '已申退' WHEN (Pro_state= 5) THEN '来信' WHEN (Pro_state= 6) THEN '办理完成' WHEN (Pro_state= 7) THEN '未予立案' end as pro_state from vw_proposals_query where 1=1 GROUP BY pro_state 结果: ct pro-state 30 办理中 7来信 1 办理完成 5 未予立案 解读: 查询总数和pro_state 当Pro_state= 1 时以'待审' 替代表示 当Pro_state= 2 时以'已审' 替代表示 当Pro_state= 3 时以'办理中' 替代表示 。。。。。。 --2)你可以在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 其实可以做更多的事情。 --3)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 你甚至还可以组合这些选项,添加一个ORDER BY 子句,如下所示: USE pubs GO SELECT 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 AS Range, Title 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, Title ORDER 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, Title GO 注意,为了在GROUP BY 块中使用CASE,查询语句需要在GROUP BY 块中重复SELECT 块中的CASE 块。 除了选择自定义字段之外,在很多情况下CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服