SQL集合函数中利用case when then 技巧 我们都知道SQL中适用case when then来转化数据库中的信息 比如  select (case sex when 0 then '男' else '女' end) AS sex  from studentInfo 那么在集合函数中它有什么用呢 ? 假设数据库有一张表名为student的表. 如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省男女个数 怎么写SQL语句?即要生成下结果表 答案是:select sex…
我们都知道SQL中适用case when then来转化数据库中的信息 比如  select (case sex when 0 then '男' else '女' end) AS sex  from studentInfo 那么在集合函数中它有什么用呢 ? SELECT sex FROM student SELECT sex,COUNT(*) AS num FROM student GROUP BY sex SELECT sex,province,COUNT(*) AS num FROM stu…
CHECK 约束用于限制列中的值的范围 在Check中使用Case函数在很多情况下都是非常不错的解决方法.可能有很多人根本就不用Check,那么我建议你在看过下面的例子之后也尝试一下在SQL中使用Check. 下面我们来举个例子 公司A,这个公司有个规定,女职员的工资必须高于1000块.如果用Check和Case来表现的话,如下所示 CREATE TABLE casetest(id INT IDENTITY PRIMARY KEY,sex CHAR(3) NOT NULL,salary INT…
1.常规方法(可运用于SQL SERVER 2000中) DECLARE @str varchar(1000) DECLARE @idoc int; DECLARE @doc xml;set @str='aaa,bbb,ccc' set @doc=cast('<Root> <item><ID>'+replace(@str,',',' </ID></item><item><ID>')+'</ID></ite…
- 实例 - 在这个表里进行查询: 查询出如下结果(统计每天的输赢次数): - 开始查询 - 首先创建测试表: CREATE TABLE info( date ), result ) ); 插入测试数据: INSERT INTO info(date,result) VALUES('2015-10-09','win'); INSERT INTO info(date,result) VALUES('2015-10-09','lose'); INSERT INTO info(date,result)…
order by case when a.ShopNumber in(1,2,3) then 0 else 1 end…
1.分段调试 面对长的SQL,出错时一般直接看定位的行号,有时候不出错但是没数据时,应该尝试分段调试,很长的SQL嵌套很多的子查询时,一个一个子查询进行分别调试,看哪一步子查询出了问题,层层推进 2.日志查看 通常情况下,日志都是很重要的指示.有时候一些莫名其妙的错误时,错误信息看得懂却始终调不通时,不妨尝试查看运行的日志(例如相关的设置项,系统解析出来运行的SQL等) logview:ODPS的Debug工具 官方介绍参考:https://help.aliyun.com/document_de…
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要…
--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Ca…
hive中的case when的用法举例 select * from (select id, count(distinct ] in ("Virus","Worm","G-Ware","RiskWare","Tool","Trojan","Warn","PornWare") then apk_md5 end) black_cnt, count(di…