SQL中的CASE WHEN用法(4)

来源:未知 责任编辑:责任编辑 发表时间:2014-02-02 17:50 点击:
    
国家男女     
    
中国340 260      
    
美国45 55      
    
加拿大51 49      
    
英国40 60      
    
普通情况下,用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分),而且SQL语句会比较长。     
    
下面是一个是用Case函数来完成这个功能的例子     
    
SELECT country,      
    
       SUM( CASE WHEN sex = '1' THEN      
    
                      population ELSE 0 END),  --男性人口     
    
       SUM( CASE WHEN sex = '2' THEN      
    
                      population ELSE 0 END)   --女性人口     
    
FROM  Table_A      
    
GROUP BY country;      
    
这样我们使用Select,完成对二维表的输出形式,充分显示了Case函数的强大。     
    
三,在Check中使用Case函数。     
    
在Check中使用Case函数在很多情况下都是非常不错的解决方法。可能有很多人根本就不用Check,那么我建议你在看过下面的例子之后也尝试一下在SQL中使用Check。     
    
下面我们来举个例子     
    
公司A,这个公司有个规定,女职员的工资必须高于块。如果用Check和Case来表现的话,如下所示     
    
CONSTRAINT check_salary CHECK      
    
           ( CASE WHEN sex = '2'      
    
                  THEN CASE WHEN salary > 1000      
    
                        THEN 1 ELSE 0 END      
    
                  ELSE 1 END = 1 )      
    
如果单纯使用Check,如下所示     
    
CONSTRAINT check_salary CHECK      
    
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • SQL编程(一)
  • LINUX上RMAN自动备份脚本
  • sql server面试题
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
  • SQL小技巧系列 --- 行转列合并
  • sql server 列转行

数据库技术导航

SqlserverMysqlOracleDB2数据库数据库综合
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1