SQL语句中的case when语法以及Oracle中的类似方法

一、基本概念和例子

case when是sql语句的语法,而不是属于特定数据库的语言

方法一:

select num,name,
(case classno
when '1' then '一班'
when '2' then '二班'
else '其他班级'
end) as classname
from student

方法二:

select num,name,
(case 
when classno = '1' then '一班'
when classno = '2' then '二班'
else '其他班级'
end) as classname 
from student

二、Oracle中的其他方法

1、在Oracle中有decode函数起到类似的作用
select num,name,decode(classno,'1','一班','2','二班','其他班级') as classname from student

2、在PL/SQL中的if else也可以达到这样的效果

时间: 2024-12-02 12:44:22

SQL语句中的case when语法以及Oracle中的类似方法的相关文章

sql语句,判断一个值是否在一个表中代码怎么写

问题描述 sql语句,判断一个值是否在一个表中代码怎么写 判断一个值是否在一个表中代码怎么写,代码加上些注释,怕看不懂 解决方案 oracle语法 select * from A where not exists(select 1 from B where instr(',' || B.namelist || ',',a.name)>0; sql语法 select * from A where not exists(select 1 from B where charindex(a.name,'

oracle-在线等,请教一下,hibernate 原生 sql语句 查询lag( , , ),出现语法错误

问题描述 在线等,请教一下,hibernate 原生 sql语句 查询lag( , , ),出现语法错误 String queryString = "select smsid from Sms where smsid = ( select c.p from ( select smsid,lag(smsid,1,0) over (order by smsid) as p from Sms) c where c.smsid= "+ smsid + ")"; SQLQue

用一条SQL语句取出第 m 条到第 n 条记录的方法

原文:用一条SQL语句取出第 m 条到第 n 条记录的方法     --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)     SELECT TOP n-m+1 *    FROM Table    WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))        --从TABLE表中取出第m到n条记录 (Exists版本)     SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not

Silverlight中怎么把byte[]存储到Oracle中的Blob字段中?

问题描述 Silverlight中怎么把byte[]存储到Oracle中的Blob字段中?求源码? 解决方案 解决方案二: 解决方案三:引用楼主u014762350的回复: Silverlight中怎么把byte[]存储到Oracle中的Blob字段中?求源码? 还是插入不了数据库!!

如何将excle中的数据加载到oracle中

一般处理Excel数据,最常用的方式是将其保存为CSV(Comma Separated Values,逗号分隔值)格式文件,单击"文件"→"另存为"命令,在"保存类型"下拉列表框中选择CSV 这个是用的较多的方法,前提必须oracle数据中目的表已经存在. 大体步骤如下:1.将excel文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的test.ctl时要将字段

SQL语句练习实例之四 找出促销活动中销售额最高的职员_MsSql

复制代码 代码如下: ---找出促销活动中销售额最高的职员 ---你刚在一家服装销售公司中找到了一份工作,此时经理要求你根据数据库中的两张表得到促销活动销售额最高的销售员 ---1.一张是促销活动表 ---2.一张是销售客列表 create table Promotions ( activity nvarchar(30), sdate datetime, edate datetime ) insert Promotions select '五一促销活动','2011-5-1','2011-5-7

这句sql语句怎么写,才能在查询分析器中运行

问题描述 updateAcc_UserssetPassword='convert(varbinary(256),'123456')'whereNickNe='admin'上面是把加了密的二进制密码,改成我已知的,但写法有错,不知道怎么写了服务器:消息260,级别16,状态1,行1不允许从数据类型varchar到数据类型binary的隐性转换(表'DAOff.dbo.Accounts_Users',列'Password').请使用CONVERT函数来运行此查询. 解决方案 解决方案二:Passwo

ssh框架中下拉列表的值怎样从oracle中获取

问题描述 基本上我写完了可是为什么下拉列表就是什么都没有求完整代码 解决方案 解决方案二:SSH中下拉列表的值?SSH跟下拉列表没什么关系先看看你的Action中有没有值如果有看看页面取到值了吗你这说的太泛泛了没法判断你是哪里出问题了解决方案三:你这个得调试具体错误不知道啊.解决方案四:检查Action中是否有你要的值,如果没有就是你们Action写的有问题,如果有就是你在页面上引用这个值的时候有问题,检查一下使用Struts2回显的时候是不是写错了.

sql语句里 when then 语法 给列表数值添加颜色 求解

问题描述 sql语句里 when then 语法 给列表数值添加颜色 求解 sql语句里 when then 语法 给'已审核'这三个字 在列表显示的时候 添加颜色 谁会啊 case m.vc_status when '1' then '已审核' else '未审核' end 解决方案 sql本身没有什么颜色,要看你的数据输出到界面或者文档中,对它才能变色.具体你输出成什么,google去找对应的修改颜色的代码. 解决方案二: mysql case when 的用法: CASE value WH