精华内容
下载资源
问答
  • 需要用wm_concat函数来实现。 如目前在emp表中查询数据如下: 要按照deptno相同的将ename以字符串形式合并,可用如下语句: select deptno,wm_concat(ename) from emp group by deptno; 查询...
    wm_concat(ename)

    需要用wm_concat函数来实现。

    如目前在emp表中查询数据如下:

    12193112_q014.jpg

    要按照deptno相同的将ename以字符串形式合并,可用如下语句:

    select deptno,wm_concat(ename) from emp group by deptno;

    查询结果:

    12193112_qmch.jpg

    查询结果添加 ' 用 ('''')

    193041_3RP8_1185580.png

    这里返回的是一个clob字段

    xmlagg(xmlparse(content ''''||b.id||''''||',' wellformed) order by b.store_code).getclobval() as searil_no

     

    转载于:https://my.oschina.net/findurl/blog/710748

    展开全文
  • Oracle数据库常用函数

    万次阅读 多人点赞 2017-10-01 17:15:12
    1.字符函数: upper('字符串'|列名称)将输入的字符串转换成大写 lower('字符串'|列名称)将输入的字符串转换成小写 initcap('字符串'|列名称),首字母大写 length('字符串'|列名称);字符串长度 replace('字符串'|列...
    1.字符函数:
    upper('字符串'|列名称)将输入的字符串转换成大写
    lower('字符串'|列名称)将输入的字符串转换成小写
    initcap('字符串'|列名称),首字母大写
    length('字符串'|列名称);字符串长度
    replace('字符串'|列名称);进行替换
    substr(字符串 | 列,开始点 [,截取个数]):字符串截取;第一个数是开始的位置,第二个数字是从截取位置开始截取的个数
    2.数字函数:
    四舍五入
      select round(3.1415926,3) from dual;    //3.142
         select round(2554,-2) from dual;   //2600
    舍弃小数位
    select trunc(3.1415926,3) from dual;   //3.141
       select trunc(2554, -2) from dual;   //2500
    3.日期函数
    1).获取当前日期:sysdate;3天后的日期
    select ename, sysdate+3 from emp;
    2).||:管道符,拼接字符串
    select ename||3 from emp;
    3).last_day:获取当月最后一天
    select last_day(sysdate) from dual;
       select last_day(hiredate) from emp;
       select * from emp where last_day(hiredate)='31-12月-80';
    4).next_day:下一次出现星期X的日期
    select next_day(sysdate,'星期日') from dual;
    5).add_months:几个月之后的日期(加减月份)
    select add_months(sysdate, 4) from dual;
    6).month_between:获取两个日期之间的月份
    select trunc(months_between('1-2月-2017',sysdate)) from dual;
    4.转换函数
    1).to_char:把日期(任意类型)转换成字符串
    select sysdate||'' from dual
       select to_char(sysdate,'yyyy-mm-dd') from dual;
       //每隔3位加一个逗号
       select to_char(123456789,'999,999,999,999') from dual;
    2).to_date:把任意类型转成时间日期
    select to_char(to_date('1999-1-1 20:20:20','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual;
    3).to_number:把任意类型转成数字
    select to_number('123')+123 from dual;
       //在数据库中"+"号只有一个意义,就是相加,没有拼接的意义
       select '123'+'123' from dual;
    5.通用函数
    查询雇员每月工资总和,基本工资+奖金
    1).nvl
    select ename ,sal+comm total from emp;
          //nvl处理null,nvl(列名称|具体的值,默认值)
          select ename, sal+nvl(comm, 0) total from emp;
    2).decode
    查询所有的员工信息,显示员工的中文职位 CLERK=办事人员,SALESMAN=销售人员,PRESIDENT=董事长,MANAGER=部门经理,ANALYST=分析人员
    select job from emp group by job ;
    //方法一:
    select ename,
    	case
    	  when job='CLERK'
    	  then '办事人员'
    	    when job='SALESMAN'
    	  then '销售人员'
    	    when job='PRESIDENT'
    	  then '董事长'
    	    when job='MANAGER'
    	  then '部门经理'
    	  else '分析人员' 
    	end 
    	from emp;
    //方法二:
    select ename,decode(job,'CLERK','办事人员','SALESMAN','销售人员','PRESIDENT','董事长','MANAGER','部门经理','ANALYST','分析师') from emp;

    展开全文
  • 字符函数 ...1.concat(str1,str2)字符串拼接函数 示例 select concat('a','b') as AB from dual 结果 ab select 'a'||'b' as AB from dual 结果ab concat('a','b')等价于 'a'||'b' 在模糊查询...
    1. 字符函数
    1.concat(str1,str2)字符串拼接函数
          示例
          select concat('a','b') as AB from dual 结果 ab
          select 'a'||'b' as AB from dual 结果ab                         concat('a','b')等价于 'a'||'b'
          在模糊查询中 还可以用concat(cloum1,cloum2) like %*%   表示   cloum1,cloum2两个字段来进行比较
    
    2.initcap(str)将每个单词首字母大写,其他字母小写
          示例
          select initcap('aA bB') as AB  from dual; 结果 Aa Bb
          select initcap('aAbB') as AB  from dual; 结果 Aabb
          select initcap('a A b  B') as AB  from dual; 结果 A A B  B
          按照空格分隔单词 首字母大写
          
    3.instr(x,find_string[,start][,occurrence])返回指定字符串在某字符串中的位置,可以指定开始位置和第几次出现结果([]表示非必填)
          示例
          select instr('AAABBBB','B') as AB from dual;; 结果 4
          select instr('AAABBBB','B',1,4) as AB from dual;; 结果 7
          select instr('AAABBBB','b',5) as AB from dual;; 结果0
          起始位置和第几次出现不填写,默认从第一个开始第一次出现,严格区分大小写
          
    4.length(str)返回表达式中的字符长度
          示例
          select length('AAAA BBBbbb') as AB from dual 结果 11
          select length('中 文') as AB from dual  结果 3
    
    5.lower(str)将字符串转换为小写
          示例
          select lower('AAAA BBBbbb') as AB from dual 结果 aaaa bbbbbb
    
    6.upper(str)将字符串转换为大写
          示例
          select upper('aaaa BBBbbb') as AB from dual 结果 AAAA BBBBBB
    
    7.lpad(str,width[,pad_string])当字符串长度不够时,左填充补齐,可以指定补齐时用什么字符补齐,若不指定,则以空格补齐([]表示非必填)
          示例
          select lpad('AAAAbbb',13) as AB from dual; 结果       AAAAbbb
          select lpad('AAAAbbb',13,'--') as AB from dual; 结果 ------AAAAbbb
    
    8.rpad(str,width[,pad_string])当字符串长度不够时,右填充补齐,可以指定补齐时用什么字符补齐,若不指定,则以空格补齐([]表示非必填)
          示例
          select rpad('AAAAbbb',13) as AB  from dual; 结果AAAAbbb      
          select rpad('AAAAbbb',13,'--') as AB from dual; 结果AAAAbbb------
    
    9.ltrim(x[,trim_string])从字符串左侧去除指定的所有字符串,若没有指定去除的字符串,则默认去除左侧空白符([]表示非必填)
          示例
          select ltrim('      AAAAbbb') as AB from dual; 结果AAAAbbb      
          select ltrim('A AAAbbb A','A') as AB from dual; 结果AAAbbb A
    
    10.rtrim(x[,trim_string])从字符串右侧去除指定的所有字符串,若没有指定去除的字符串,则默认去除左侧空白符([]表示非必填)
          示例
          select rtrim('AAAAbbb      ') as AB from dual; 结果AAAAbbb      
          select rtrim('A  AAAbbb  A','A') as AB from dual; 结果A  AAAbbb  
       
    11.trim(trim_string from x)从字符串两侧去除指定的所有字符串
    	   示例
    	   select trim ( 'x' from 'xxxxDWEYExxxx') as AB from dual; 结果DWEYE (注意要指定的只能单个字符)
    
    12.nvl(x,value)将一个NULL转换为另外一个值,如果x为NULL,则返回value,否则返回x值本身
    	   示例
    	   select nvl(null,'ab') as AB from dual; 结果ab
    	   select nvl('df','ab') as AB from dual; 结果df
    
    13.nvl2(x,value1,value2),如果x不为NULL,返回value1,否则,返回value2
    	   示例
    	   select nvl2(null,'ab','cd') as AB from dual; 结果cd
    	   select nvl2('df','ab','cd') as AB from dual; 结果ab
    
    14.replace(x,search_string,replace_string),从字符串x中搜索search_string字符串,并使用replace_string字符串替换,不会更改数据库中原始值
    	   示例
    	  select replace('acddsdsdsad','d','*') as AB from dual; 结果ac**s*s*sa*
    
    15.substr(x,start[,length])返回字符串中的指定的字符,这些字符从字符串的第start个位置开始,长度为length个字符;如果start是负数,则从x字符串的末尾开始算起;如果length省略,则将返回一直到字符串末尾的所有字符([]表示非必填)
    	   示例
    	  select substr('sdsdadsd',3) as AB from dual; 结果sdadsd(取起始值)
    	  select substr('sdsdadsd',3,5) as AB from dual; 结果sdads(第三个开始包含第3个,取5个)
    
    16.decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)根据条件得到自定义值
    	   示例
    	    select decode(3,1,3,2,4,5) as AB from dual; 结果5
    	    select decode(1,1,3,2,4,5) as AB from dual; 结果3
    	    select decode(2,1,3,2,4,5) as AB from dual; 结果4
    	    可以配合其他函数一起使用,条件也可以是查询语句,返回值也能是函数如sysdat
    
    

    以下部分原文地址
    2. 数字函数

     1.  ROUND(X[,Y]),四舍五入。
    
    		在缺省 y 时,默认 y=0;比如:ROUND(3.56)=4。
    		
    		y 是正整数,就是四舍五入到小数点后 y 位。select ROUND(5.654,2) as AB from dual 结果5.65。
    		
    		y 是负整数,四舍五入到小数点左边|y|位。select ROUND(351.654,-2) as AB from dual 结果400。
    
     2.  TRUNC(x[,y]),直接截取,不四舍五入。
    
    		在缺省 y 时,默认 y=0;比如:TRUNC (3.56)=3。
    		
    		Y是正整数,就是四舍五入到小数点后 y 位。TRUNC (5.654,2)=5.65。
    		
    		y 是负整数,四舍五入到小数点左边|y|位。TRUNC (351.654,-2)=300。
    
    1. 日期函数
       日期函数对日期进行运算。常用的日期函数有:
    
    1、ADD_MONTHS(d,n),在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期。
    
    		d 表示日期,n 表示要加的月数。
    		
    		例:SELECT SYSDATE,add_months(SYSDATE,5) FROM dual;
    
     
    
    2、LAST_DAY(d),返回指定日期当月的最后一天。
    
    		例:SELECT SYSDATE,last_day(SYSDATE) FROM dual;
    
     
    
    3、ROUND(d[,fmt]),返回一个以 fmt 为格式的四舍五入日期值, d 是日期, fmt 是格式
    
       模型。默认 fmt 为 DDD,即月中的某一天。
    
    		Ø  ① 如果 fmt 为“YEAR”则舍入到某年的 1 月 1 日,即前半年舍去,后半年作为下一年。
    		
    		Ø  ② 如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一月。
    		
    		Ø  ③ 默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。
    		
    		Ø  ④ 如果 fmt 为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日。
    		
    		例:SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'),
    		
    		ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual;
          与 ROUND 对应的函数时 TRUNC(d[,fmt])对日期的操作, TRUNC 与 ROUND 非常相似,只是不对日期进行舍入,直接截取到对应格式的第一   天。
    
    4、EXTRACT(fmt FROM d),提取日期中的特定部分。
    
    		fmt 为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可以为 DATE 类型匹配,也可以与 TIMESTAMP 类型匹配;但是 HOUR、MINUTE、SECOND 必须与 TIMESTAMP 类型匹配。
    		
    		HOUR 匹配的结果中没有加上时区,因此在中国运行的结果小 8 小时。
    		
    		例:SELECT SYSDATE "date",
    		
    		       EXTRACT(YEAR FROM SYSDATE)"year",
    		
    		       EXTRACT(MONTH FROM SYSDATE)"month",
    		
    		       EXTRACT(DAY FROM SYSDATE)"day",
    		
    		       EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",
    		
    		       EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",
    		
    		       EXTRACT(SECOND FROM SYSTIMESTAMP)"second"
    		
    		FROM dual;
    
    1. 转换函数
    转换函数将值从一种数据类型转换为另外一种数据类型。常见的转换函数有:
    
    1、TO_CHAR(d|n[,fmt])
    
    把日期和数字转换为制定格式的字符串。Fmt是格式化字符串
    
    代码演示:TO_CHAR对日期的处理
    
    SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;
    代码解析:
    在格式化字符串中,使用双引号对非格式化字符进行引用
    

    针对数字的格式化,格式化字符有:

    参数示例说明
    9999指定位置处显示数字
    .9.9指定位置返回小数点
    ,99,99指定位置返回一个逗号
    $$999数字开头返回一个美元符号
    EEEE9.99EEEE科学计数法表示
    LL999数字前加一个本地货币符号
    PR999PR如果数字式负数则用尖括号进行表示
    如果数字式负数则用尖括号进行表示
    
    代码演示:TO_CHAR对数字的处理
    
    SELECT TO_CHAR(-123123.45,'L9.9EEEEPR')"date" FROM dual;
    
    2、TO_DATE(X,[,fmt])
    
    把一个字符串以fmt格式转换成一个日期类型
    
    3、TO_NUMBER(X,[,fmt])
    
    把一个字符串以fmt格式转换为一个数字
    
    代码演示:TO_NUM函数
    
    SELECT TO_NUMBER('-$12,345.67','$99,999.99')"num" FROM dual;
    ========================================
    PLSQL添加环境变量:
    变量名:NLS_LANG
    变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    ========================================
    
    展开全文
  • Oracle数据库分组函数详解

    千次阅读 2018-01-02 10:12:03
    常用的分组函数:AVG平均值,SUM求和,MIN最小值,MAX最大值,COUNT个数,WM_CONCAT字符串的拼接等。 WM_CONCAT函数可用于行转列的功能。 下面讲一个空值问题: 求平均工资有下面三个方法。 分组函数...

    分组函数作用于一组数据,并对一组数据返回一个值。



    常用的分组函数:AVG平均值,SUM求和,MIN最小值,MAX最大值,COUNT个数,WM_CONCAT字符串的拼接等。





    WM_CONCAT函数可用于行转列的功能。


    下面讲一个空值问题:

    求平均工资有下面三个方法。



    分组函数会自动忽略空值

    注意我们可以使用NVL函数使分组函数无法忽略空值。




    现在求各个部门的平均工资就可以用group by的功能实现。



    注意:在select列表中所有未包含在组函数中的列都应该包含在group by子句中

    但是:包含在group by子句中的列却不必一定包含在select列表中

    比如我们只要求部门的平均工资。






    从功能上讲,这个having子句和我们熟悉的where有点类似。

    可以过滤我们的分组子句。

    下面直接看例子:




    如果不存在分组的情况下,我们使用where和having的效果是一样的,存在通用的情况。

    但是:从SQL优化的角度上去看,尽量使用where

    having:先分组   后过滤

    where:先过滤   后分组

    在分组查询中我们可以使用order by子句来排序,可以按照列、别名、表达式、序号进行排序。

    当然在oracle中排序最简单的是按照序号排序,就是字段列的顺序。

    默认是升序排列。


    如是要是降序排序,则在排序语句最后加上降序 desc  !


    分组函数的嵌套:

    求部门平均工资的最大值:

    1、通过AVG函数求出各个部门的平均工资,

    2、嵌套MAX函数求出部门平均工资的最大值。








    展开全文
  • Oracle 字符串拼接函数使用方法

    千次阅读 2019-03-07 19:02:15
    字符串可以是 SELECT 列表中的一个字符,数字,日期。 日期和字符只能在单引号中出现。 每当返回一行时,字符串被输出一次。
  • Oracle数据库中字符串拼接的实现 select count() from THT_HTFKJL where ht=1; 假如结果为:31、例如上面例子想要给结果拼接字符串有二种实现方法,第一种使用’||’拼接,相当于’+’字符。select ‘第’||count...
  • oracle数据库拼接引号 在我的上一篇文章中 ,我提到了使用双引号在Oracle标识符中显式指定大小写的缺点是可能会将字符串文字与单引号混淆。 尽管我个人并不认为这是避免在Oracle中避免对标识符使用双引号的充分理由...
  • oracle 字段拼接方法:concat函数和||

    万次阅读 2018-08-24 09:42:10
    在表中会有多个字段,有时根据需求我们需要将两个字段或者多个字段进行拼接,这时我们可以采用concat函数或者||达到字段拼接的目的。 假设表tableA中有first_name和last_name,我们通过以下字段将其拼接 first_name...
  • Oracle数据库内置函数

    2019-08-17 21:12:02
    字符型函数: 1、length(str):返回str的长度。 2、trim(str):去除字符串两边的空格。 3、lower(str):将str全部的字符都转换成小写。 4、upper(str):将str全部的字符都转换成大写。 5、concat(str1,str2):返回...
  • 语法与Oracle相同 wm_concat() select id,name,wm_concat(class) from sutdent group by id,name
  • Oracle数据库 REGEXP_SUBSTR 函数 需求场景: 要求在指定时间段内根据部门名称字段(数据库中为多个,拼接字段) 进行分组计算sum(score) 如图 实现:先切割字段再分组计算,使用到REGEXP_SUBSTR /** *- 字段说明 ...
  • Oracle数据库

    千次阅读 2019-07-29 20:33:09
    学习主题:Oracle数据库的使用 学习目标: 1 掌握数据库相关概念 2 掌握oracle的安装,认识oracle的目录以及系统用户 3 掌握oracle常用命令 1.数据库相关概念 (1)请解释什么是DB, DBMS, DBAS, DBA, DBS? DB数据库,...
  • 将表tmp中下列两个字段拼接成字段RKRQSJ,显示格式为yyyy-MM-dd hh24:mi:ss(原 字段为字符串类型)。 1、使用to_date函数将字符串RKRQ字段装换成日期。 select to_date(RKRQ,‘yyyyMMdd’) from tmp 注:to_date后...
  • 练习字符处理函数数据库表都是从1开始),我们用到一张“伪表” dual: dual 表:dual 是一张只有一个字段,一行记录的表。dual 表也称之为'伪表',因为他不存储主题数据。如果我们不需要从具体的表来取得表中...
  • 最全的oracle数据库语句大全总结

    千次阅读 2019-07-07 11:21:29
    最全的oracle数据库语句大全总结 包含你见到的所有常见语句; 包含表的创建,删除,修改字段名,修改属性; 包含记录的增删改查; 包含所有记录的各种查询及内连接外连接; 以下所有例子都用person表和student表为例...
  • 字符串函数:拼接函数:concat(p1,p2) ,内容p1、p2进行无缝拼接,也可使用“||”代替统计长度:length(p1),统计p1内容的字符串长度补位函数:左补位:lpad(p1,n,p2),使用p2对p1进行左补位,总长度为n;...
  • SELECT NVL(COLUMN1,'') || NVL(COLUMN2,'') AS TEST from TABLE1 转载于:https://www.cnblogs.com/FInerProgrammer/p/7150898.html
  • 本例中使用的配置文件mybatis-config.xml、PersonInfo类以及Oracle数据库的表结构,可以参见我的另一篇Blog《一个简单的MyBatis连接Oracle数据库的例子》( http://my.oschina.net/Tsybius2014/blog/626206 ) ...
  • oracle 拼接字符串的函数写法

    千次阅读 2015-01-29 15:19:12
    需求:首先根据角色ID (JSID) 查到角色组ID (JSZID),根据角色组ID (JSZID) 找到对应权限的文档ID (DOCID) 根据文档ID (DOCID) 找到附件的ID (FIEFLID) ...得到这三个字段的拼接字符串 所以sql 语句如下  string se
  • Oracle字符拼接函数中文乱码问题

    千次阅读 2017-07-24 17:45:35
    最近在别人的项目基础二次开发,导入源码和ORALCE数据库后,页面上部分字段出现中文乱码,查看数据库编码 编码支持中文,Debug代码后发现代码中出现wm_concat函数的地方全部是中文乱码,查询数据表wm_concat的原始...
  • Oracle日期与时间拼接函数以及时间处理函数
  • 执行结果:李明-88 3.concat:oracle中的函数,CONCAT(char1 , char2) select concat(concat(Name,'-'),Languages) from GradesTable where name='李明'; 执行结果:李明-88 4.wmsys.wm_concat:括号里面的参数是列...
  • 碰到需要查询大量表所属数据库用户名的情况,找了下有两个函数可以使用: 1. wm_concat 2. listagg
  • 但是oracle的IN方法是不支持拼接字符串的,所以要把字符串转为数组 Oracle提供了regexp_substr函数可以用来把字符串转为数组。 regexp_substr函数格式如下: function regexp_substr(String, pattern, position, ...
  • Oracle FIND_IN_SET函数 数据库中有下方表格所示类型的一个列,每个值都是由ID拼接的字符串,用户希望能针对这个列做到数据检索,要求数据值只要包含传入值,即视为满足检索条件。 直接写sql select t.* from TABLE...
  • Oracle数据库的查询、函数函数转换 ###一、 基本查询 ### select 列名1,列名2… from 表名 1.请查询出s_emp表中所有的员工信息: select * from s_emp; 2.请查询出s_emp表中所有的员工的部门ID,工资: ...
  • select a.*,rownum ros from ( select listagg(t1.zt_hz,',') within group (order by t.NSRSBH) pj from dt_gkjl_gkjlls t, nsr_dm_pj t1 WHERE t.pjnsrid = t1.zt_dm and t.NSRSBH='370784199110286434' ...
  • Oracle数据库wm_concat()函数的使用方法

    千次阅读 2019-08-27 17:03:49
    oracle数据库中wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle数据库wm_concat(column)函数实现字段合并 如: shopping: ---------------------------------------- u_id goods num ---...
  • Oracle数据库拼接字符串 字符串相加是我们工作中常见的操作,那么如何才能将两个字符串或多个字符串拼接·组合为一个字符串呢? 下文将讲述Oracle中字符串的操作方法,如下所示: 实现思路: 方式1: 使用concat连接...
  • Oracle 拼接值返回函数

    2021-07-20 11:12:07
    1,很多时候一个列对应的多个key值,写个oracle数据库的处理方法。 思路:查询满足条件的游标,遍历游标拼接为一个值显示 create or replace function Get_Pln_OpmodeByCntrno(cntrno in varchar) return varchar is...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,508
精华内容 5,403
关键字:

oracle数据库拼接函数