数据库case when语句 case语句 数据库
sql语句中case when的使用问题
举个例子就明白了,例如在员工的工资表把员工的工资分成等级
1000以下为低薪,1000-2000为中等,其他为高薪
select (case when salary <= 1000 then '低薪' when salary > 1000 and salary < 2000 then '中等' else '薪' end ) as 工资等级 from employee
这样,工等就可当做一个列来处理,包括where面,可以写where (case when salary <= 1000 then '低薪' when salary > 1000 and salary < 2000 then '中等' else '高薪' end ) = ‘低薪'
当做一个列就好
sql中case when …… then …… 用法是什么?
select 分数,类别=Case
WHEN 分数>=85 THEN '优秀'
WHEN 分数>=75 THEN '良好'
WHEN 分数>=60 THEN '及格'
ELSE '不及格'
END
from 成绩表
sql 的case when 语句
把括掉就好了。
下面是case的两种用法,可以看下 :
1. 使用带有 CASE 简单表达式的 SELECT 语句。
在 SELECT 句,CASE 简单表达式只能用于等同性检查,而不进行其他比较。下面的示例使用 CASE 表达式更改产品系列类别的显示,以使这些类别更易理解。
USE AdventureWorks2008R2;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO
2. 使用带有 CASE 搜索表达式 SELECT 语句
在 SELECT 语句中,CASE 搜索表达式允许根据比较值替换结果集中的值。下面的示例根据产品的价格范围标价显示
mySQL更新语句的case when 和 where的结合
直接加在语句最后就行了。
UPDATE `member` SET score = (CASE WHEN score IS NOT NULL THEN score = 0 ELSE score = 1 END) where id =1;
mysql数据库中CASE WHEN语句。
case when语句,用于计算条件列并回多可能结果表达式之一。
CASE 具有两种格式:
简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
CASE 搜索函数计算一组布尔表达式以确定结果。
两种格
标签:作文经典 上一篇:同啥可啥成语 同啥同啥成语 下一篇:一个浪花打一成语 浪花打一成语SQL语句中case,when,then的用法
case 表达式
when 值1 then
如何用ORM支持SQL语句的CASE WHEN
如何得到库中所有表字段及字段中文描述
以下资料,通过csdn的一位师兄从SQL版主那得到:
sql中
SELECT
(case when a.colorder=1 then d.name else '' end) N'表名',
a.colorder N'字段序号',
a.name N'字段名',
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',
(case when (SELECT count(*)
FROM sysobjects
WHERE (name in
(SELECT name
FROM sysindexes
WHERE (id = a.id) AND (indid in
(SELECT indid
FROM sysindexkeys
WHERE (id = a.id) AND (colid in
(SELECT colid
FROM syscolumns
WHERE (id = a.id) AND (name = a.name))))))) AND
(xtype = 'PK'))>0 then '√' else '' end) N'主键',
b.name N'类型',
a.length N'占用字节数',
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
(case when a.isnullable=1 then '√'else '' end) N'允空',
isnull(e.text,'') N'默认值',
isnull(g.[value],'') AS N'字段说明'
--into ##tx
FROM syscolumns a left join systypes b
on a.xtype=b.xusertype
inner join sysobjects d
on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join sy *** ents e
on a.cdefault=e.id
left join sysproperties g
on a.id=g.id AND a.colid = g. *** allid
order by object_name(a.id),a.colorder
一个字,爽,还可以省去做DD时的好多麻烦.
如果不是很明白,可以将以上代码放到SQL查分析
数据库sql中的case语句~
*
SQL语句中的CASE语句与高级语言中的switch语句,是标准SQL的语法,适用与一个条判断多种值的情况下分别执行不同的操作
*
灵活应用CASE语句可以SQL语句变得简洁易读.
*
Case 使用方法:
*
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,你永远无法得到“第二类”个
关于使用sql语句sum(case when……)来实现分类汇总功能
你是要按月分和销售人员来对销售额透视,而sql语句只对月份分组,正确结果应该增加分组维度
select
月份,
sum (case when 销售人员='姓名1' then 销售数量*产品单价 else 0 end) as 姓名1销售额,
sum (case when 销售人员='姓名2' then 销售数量*产单价 else 0 end) as 姓名1销售额,
sum (case when 销售人员='姓名3' then 销售数量*产品单价 else 0 end) as 姓名1销售额
from 表格
group by 月份,销售人
sql语句中,decode和case when语句的区别有哪些?并且哪个更实用?
DECODE Oracle 特有
CASE WHEN Oracle , SQL Server, MySQL 都可用。
科目表: sid name;
个信息表: tid name sex age;
成绩表: id score sid tid;
CASE WHEN 可以 等于的条件, 也可以 大于等于 之类的条件。
而 decode 好像只能 等于的件。
下面是一个 CASE WHEN 的例子:
SELECT
tid as 号,
COUNT(sid) AS 选择几种科目,
SUM( CASE WHEN score >=60 THEN 1 ELSE 0 END )
/ COUNT(score) AS 及格
SQL 语句中 case when 怎么判断 某字段数据为空
Declare @Data VarChar(20)
Set @Data = ''
Select Case When @Data Is NULL Then NULL
When @Data = '' Then 'Data is empty'
End
或者:
CASE WHEN (ID IS NULL)
THEN 'YES'
ELSE 'NO'
END AS ID_Value,
标签:作文经典 上一篇:同啥可啥成语 同啥同啥成语 下一篇:一个浪花打一成语 浪花打一成语