SQL else 0 end

作者&投稿:书荆 (若有异议请与网页底部的电邮联系)
SQL条件控制(case when...then...else...end) 详细解释~

case when 条件 then 条件为真时的值 else 条件为假时的值 end

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部分将会被自动忽略。

--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ( 'a', 'b') then '第一类'
when col_1 in ('a') then '第二类'
else'其他' end

--SQL中有判断的地方就可以用到他,相当于Excel的iif()函数,其他语言的if else--如果怎样就怎样,否则就怎样--比如,如果性别为1就显示为男,否则就显示为女Select Name,case when Sex =0 then '男' else '女' end 性别 From ZlEmployee--行转列Select Code,Case when Sex=0 then Name else '' end As 男,Case when Sex=1 then Name else '' end As 女 From ZlEmployee--自定义排序Select Name,Sex from ZlEmployee order by case Left(Name,1) when '赵' then 1when '钱' then 2when '孙' then 3when '李' then 4when '周' then 5when '吴' then 6when '郑' then 7when '王' then 8Else 9 End

你初学者吧?case的语句格式是 case 。。。。。。。。。。end
它结构就是这样的,给你解释一下你这句话的意思吧,
case ---------------假设
when column < 20 then 1-------------column小于20,则返回值1
when column >30 then 2 ------------column大于30,则返回值2
else 0 ------------除去小于20并且大于30的column,则返回值0
end ---------------结束
够详细了吧。。。。。。。。

case when column < 20 then 1 当cloumn小于20时显示1
when column >30 then 2 当column大于30 显示2
else 0 end 其他情况显示0 结束case 其他情况为大于等于20小于等于30的数


潼关县15711923521: SQL else 0 end -
单于旭吉赛: 你初学者吧?case的语句格式是 case ..........end 它结构就是这样的,给你解释一下你这句话的意思吧, case ---------------假设 when column < 20 then 1-------------column小于20,则返回值1 when column >30 then 2 ------------column大于30,则返回值2 else 0 ------------除去小于20并且大于30的column,则返回值0 end ---------------结束 够详细了吧........

潼关县15711923521: SQL语句统计每天、每月、每年的销售总额 -
单于旭吉赛: 1、每年select year(ordertime) 年, sum(Total) 销售合计from 订单表group by year(ordertime)2、每月select year(ordertime) 年, month(ordertime) 月, sum(Total) 销售合计from 订单表group by year(ordertime),month(ordertime3、每...

潼关县15711923521: SQL 无法绑定由多个部分组成的标识符 -
单于旭吉赛: 出现这种错误 ,主要问题是因给未给列明确指定所属的表.如二个表同时有相同的列,就需要显示指定是哪个表. 示例如下,下面列中ID需要明确为a.ID 或b.ID select ID,b.other from table a left ouer join table b on a.id=b.id -- 出错,明确为A.ID即可.

潼关县15711923521: SQL中begin end 什么意思?怎么用着条语句? -
单于旭吉赛: 一个个的回答的都所问非所答!!!看来楼上的几个自己估计都不是狠清楚,这样就别回答别人,以免让人家更迷糊.我来回答lz吧 begin end是表示的一个语句块,是T-SQL语言的一部分,类似于其他编程语言的大括号{},如if(...){...} 在T-SQL中就是if(...)begin ... endT-SQL语言它是用来让应用程式与 SQL Server 沟通的主要语言.可以自己先查查这种语言,我就不多说了.多数情况下T-SQL和存储过程一起使用,希望帮助了你吧.

潼关县15711923521: sql 分组统计 -
单于旭吉赛: --SQL SERVER 2000 动态SQL. declare @sql varchar(8000) set @sql = 'select 姓名 ' select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']' from (select distinct 课程 from tb) as a set @sql = @sql + ' , cast(avg(分...

潼关县15711923521: sql查询语句 -
单于旭吉赛: select city, sum(case 状态 when 0 then 1 else 0 end) as '状态为0的数量', sum(case 状态 when 1 then 1 else 0 end) as '状态为1的数量', sum(case 状态 when 2 then 1 else 0 end) as '状态为2的数量' from 表名

潼关县15711923521: SQL语句中如何求单行空值数量 或者百分比啊 -
单于旭吉赛: DECLARE @SQL_String VARCHAR(8000); SELECT @SQL_String = 'SELECT ' SELECT @SQL_String = @SQL_String + 'T1.' + name + ' + ' from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='Table_1') ...

潼关县15711923521: sql语句合并 - --高手来 -
单于旭吉赛: 1,如果单单是为了合并语句可以这样:select 'count_1',sum(xxx) from tab where optype=1 union select 'count_other',sum(xxx) from tab where optype!=1;2,当然你也可能是另外一种意思:根据optype类型就行区分统计,那么你可以这样:select sum(case when optype=1 then 1 else 0 end) count_1, sum(case when optype=1 then 0 else optype) count_else from tab; 我想你应该是后一种情况 ,谢谢采纳

潼关县15711923521: SQL语句求一个学生表的学生成绩的平均成绩 -
单于旭吉赛: 问题:假设有张学生成绩表(tb)如下:姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ---- 李四 74 84 94 张三 74 83 93-------------------*/ ...

潼关县15711923521: 这个sql语句是什么意思?高手帮我讲讲吧 -
单于旭吉赛: 加上[],用于与关键字区分.那两个select 只是起到赋值的作用,和set是一样的,就算两个一起运行,也不会有结果集.exec(@sql) 将变量@sql里的字符串作为sql语句执行,这才是返回结果集的语句... 再粗略看了一下.Select @sql = @sql + ',...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网