oracle中case...when的用法】的更多相关文章

全表的内容 case...when可以解决在显示的时候想显示别的名称的例子, 用的最多的地方就是性别, 比如上面的表中的性别是由'1'和'0'表示的, 但是实际显示出来在页面上给客户看是不可取的, 这时候可以用到这个case...when, 具体写法如下…
实例演示: (1)查询表users中的数据. select u.id,u.realname,U.SEX from users u; 查询结果如下 ID    REALNAME SEX 1  10082 松XX 2  10084 林XX     1 3  10087 西XX 4  10100 胡XX 5  10102 龙XX     1 ...... (2)上表结果中的"sex"是用代码表示的,希望将代码用中文表示.可在语句中使用CASE语句. select u.id,u.realnam…
Oracle中rownum的基本用法 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀. (1) rownum 对于等于某值的查询条件如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件.但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据.因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断…
Oracle 中 CONTAINS 函数的用法 1. 查询住址在北京的学生 SELECT student_id,student_name FROM students WHERE CONTAINS( address, 'beijing' ) remark: beijing是一个单词,要用单引号括起来. 2. 查询住址在河北省的学生 SELECT student_id,student_nameFROM students WHERE CONTAINS( address, '"HEIBEI provin…
场景1:比如说我们在数据库存了性别的字段,一般都是存0 和 1 代表男和女   然后我们会得到0和1之后在java中判断 ,很麻烦有么有?其实我们完全可以在sql中判断好之后拿来现成的.就是在sql中做判断就ok SELECT *, CASE WHEN ly = 'app' then '手机' WHEN ly = 'pc' then '电脑' ELSE '其他' END '来源' FROM stu 结果: 1 张1 1 pc  电脑2 张2 1 app 手机3 张3 1 app 手机4 张4 2…
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex ' THEN '男' ' THEN '女' ELSE '其他' END --Case搜索函数 ' THEN '男' ' THEN '女' ELSE '其他' END 两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式.还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略. --下面…
1 用法简介TO_NUMBER函数()是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反. To_number函数的格式如下: To_number(varchar2 or char,’format model’)1To_number函数中也有很多预定义的固定格式: 格式值 含义9 代表一个数字0 强迫0显示$ 显示美元符号L 强制显示一个当地的货币符号. 显示一个小数点, 显示一个千位分隔符号2 一些例子SQL> select to_…
to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错. 即按照第二个参数的格式解释第一个参数. to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换. 转换的格式: 表示year的:y  表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 表示month的:mm 用2位数字表示月:mon 用简写形式 比如11月或者nov :month 用全称…
to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的string转换为一个number类型的数值: 2.需要注意的是,被转换的字符串必须符合数值类型格式,如果被转换的字符串不符合数值型格式,Oracle将抛出错误提示; 3.to_number和to_char恰好是两个相反的函数:  eg: (1)to_number(varchar2 or char,'格式…
常犯错的使用方法. to_date('2019-08-12 22:05:','yyyy-MM-dd HH24:mm:ss') Oracle中会引起错误:"ORA 01810 格式代码出现两次". 正确的使用方法 to_date(sysdate,'yyyy-MM-dd HH24:mi:ss') 常用参数 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IYYY ISO标准的四位年份…
--case语句的种类: .简单case语句 语法: case exp when comexp then returnvalue ... when comexp then returnvalue else returnvalue end case到end之间相当于一个具体的值,可以做运算,取别名,嵌套case 等等. 只要把case到end当作一个运算结果的表达式就可以了. 举例: select cust_last_name, then 'low' then 'high' else 'mediu…
关于sql中单引号和双引号的使用,来一点说明: 1. 查询列的别名如果含有汉字或者特殊字符(如以'_'开头),需要用双引号引起来.而且只能用双引号,单引号是不可以的. 2. 如果想让某列返回固定的值,而且这个返回值是varchar类型的,返回值需要用单引号引起来.而且只能用单引号,双引号是不可以的. 例子1: a)查询列中有"_"开头的列名时,需要用双引号引起来. b)使用"case"关键字,根据分数直接判断是否及格. create table tbl_score(…
procedure P_GetProVerSingInfo_2018(varFileID in varchar2, p_cr1 out refcontent, p_cr2 out refcontent, p_cr3 out refcontent) as begin open p_cr1 for select * from ly_familyinformation where file_id = varFileID ' order by case when relation = '购房人/申请人'…
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示例和SQL语句阐述下oracle数据库中用于分组排序函数的用法. a.row_number() over() row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序…
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搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要…
函数介绍 DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能. DECODE有什么用途呢?先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%:工资在8000元或以上的加15%. 通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else…
转载:https://blog.csdn.net/simonchi/article/details/8657787 DBMS_RANDOM.STRING(var1,var2) 这个函数有两个参数 var1的参数值情况有:u,l,a,x,p u-->uppercase l-->lowercase a-->mixed case x-->uppercase,alpha&numeric p-->any printable char 以上的参数值也可以用大写字母,效果一样. v…
一.函数标准格式: DUMP(expr[,return_fmt[,start_position][,length]]) 基本参数时4个,最少可以填的参数是0个.当完全没有参数时,直接返回null.另外3个参数也都有各自的默认值: expr:这个参数是要进行分析的表达式(数字或字符串等,可以是各个类型的值) return_fmt:指返回参数的格式,有5种用法: 1)8:以8进制返回结果的值 2)10:以10进制返回结果的值(默认) 3)16:以16进制返回结果的值 4)17:以单字符的形式返回结果…
一.24小时的形式显示出来要用HH24 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 二.to_date() function 1.日期格式参数含义说明 D一周中的星期几 DAY天的名字,使用空格填充到9个字符 DD月中的第几天 DDD年中的第几天 DY天的简写名 IW ISO标准…
row_number()over(partition by col1 order by col2)表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码. row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开始排序). rank()是跳跃排序,有两个第二名…
在重新开发已经有过的一个项目时,参考原本的sql,在一个存储过程中有用到 start with connect by,从网络找到下面资料. Oracle 提供了start with connect by 语法结构可以实现递归查询. from test;  DAY_NUMBER MSISDN-------------------- ---------- --------------------200803                        1 13800200803          …
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事务最开始的点. SAVEPOINT和ROLLBACK TO SAVEPOINT语法: SAVEPOINT identifier ROLLBACK [WORK] TO SAVEPOINT identifier RELEASE SAVEPOINT identifier 例子: create table…
1.标准Insert --单表单行插入   语法:   INSERT INTO table [(column1,column2,...)] VALUE (value1,value2,...)     例子:   insert into dep (dep_id,dep_name) values(1,'技术部');      备注:使用标准语法只能插入一条数据,且只能在一张表中插入数据   2, 无条件 Insert all --多表多行插入      语法: INSERT [ALL] [condi…
转自:http://blog.csdn.net/basenet855x/article/details/6694150 问题: select item.itemnum,item.in1,item.in4,inventory.location from item,inventory where item.itemnum=inventory.itemnum and inventory.location='DYB' and item.in1='D/MTD/MRM' GROUP BY ITEM.ITEM…
最近在做一个需求,就是涉及到表的问题,前端传过来一条数据,根据主键,查询数据库,如果不存在,那么久插入到数据库中一条,如果存在的话,就是以主键的方式,对数据库中的数据,进行更新. 拿到这个需求的时候,想的就是直接用if…else…代码进行判断,首先就是查询,查到了记录,就更新,没有查到,就进行数据的直接插入. 这种方法,本来是没有什么问题的,毕竟都能够完成要求,只是,因为数据库中这张表的记录,实在是太大,通过代码的方式,进行查询判断的话,实在是太消耗时间了,后来查询了一下,这才是找到Oracle…
今天有个同学问我这个INSTR函数,我也不太清楚就上网查了查做一个小小的记录吧 INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 SQL> select instr(oracle traning,ra,1,2) instring from dual; INSTRING --------- 9 他的位置搜索是从1开始的也就是说o的位置是1,这点要分清楚.…
Oracle函数to_char转化数字型指定小数点位数的用法 to_char,函数功能,就是将数值型或者日期型转化为字符型. 比如最简单的应用: -- 1.0123=>1.0123 SELECT TO_CHAR(1.0123) FROM DUAL -- 123=>123 SELECT TO_CHAR(123) FROM DUAL 接下来再看看下面 -- 0.123=>123 SELECT TO_CHAR(0.123) FROM DUAL 结果:上面的结果 '.123' 在大多数情况下都不…
Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似 decode()函数简介: 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的列名, select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值sign()函数根据某个值是0.正数还是负数,分别返回0.…
sql语句判断方式之一Case.具有两种格式:简单的Case函数.Case搜索函数. 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE WHEN sex='1' THEN '男' WHEN sex='2' THEN '女' ELSE sex='其他' END…
很多时候我们需要通过筛选条件同时对表进行 更新,插入,删除 等操作.这样如果我们单一的去操作表会显得很麻烦,下面会说到这个merge  into 的用法会极大的优化我们操作表的时间和代码量. 举例,先新建2个表: create table book( id number, name varchar(64), price number, primary key(id) ) create table pbook as select * from book delete pbook 这里create…