精华内容
下载资源
问答
  • ORACLESQL拼接问题

    2021-05-08 02:58:30
    FROM USER_UNIT WHERE ORGMENBERID='zhangshang'这个我查询出来是701,702,703这样的数据,我需要放到WHERE条件中IN出来SELECT USERGROUPID FROM V_USER_CREGION WHERE USERGROUPID IN ('')=========不知道怎么拼接.....

    SELECT wm_concat(USERRELATIONID) FROM USER_UNIT WHERE ORGMENBERID='zhangshang'

    这个我查询出来是701,702,703这样的数据,

    我需要放到WHERE条件中IN出来

    SELECT USERGROUPID FROM V_USER_CREGION WHERE USERGROUPID IN ('')

    =========不知道怎么拼接单引号和双引号调整不好========

    SELECT USERGROUPID FROM V_USER_CREGION WHERE 1=1 ${if(len(a)=0,"","USERGROUPID IN ('SUBSTITUTE(SELECT wm_concat(USERRELATIONID) FROM USER_UNIT WHERE ORGMENBERID='zhangshang',",","','")")}

    这个SQL求解》???

    ===========================================

    顺便问一句if条件

    ${if(len(a)=0,"","")

    我这个参数a我可以直接写SQL吗?

    'SELECT wm_concat(USERRELATIONID) FROM USER_UNIT WHERE ORGMENBERID='zhangshang'

    展开全文
  • oracle sql语句拼接字符Java代码select city_std || ‘/’ || stationname as name_std, city_std from station s,(select (select substr(s.name_std,0, instr(s.name_std, ‘/’)-1) from dual) || ‘.’ ||...

    oracle sql语句拼接字符

    Java代码

    select city_std || ‘/’ || stationname as name_std, city_std from station s,

    (select (select substr(s.name_std,0, instr(s.name_std, ‘/’)-1) from dual) || ‘.’ ||

    (select substr(getxtxx(s.maintainunit),0, instr(getxtxx(s.maintainunit), ‘供’)-1)

    from dual) as city_std FROM station s where s.stationcode=’00000000000001001540′)

    zIF3y2.jpg

    说明:

    from station s, 以后为定义一个可复用的city_std查询结果

    instr() 查找给点字符的位置

    substr() 取子字符串

    getxtxx()自定义函数

    || 字符连接

    展开全文
  • --定义一个变量游标v_cursor number;... v_end_audit_date then --申报书、合同书、验收书状态推送到微信v_sql:='insert into we_chat_push_data(id,key_code,old_status,old_status_name,status,status_name,op_...

    --定义一个变量游标v_cursor   number;

    if v_begin_audit_date < v_end_audit_date then     --申报书、合同书、验收书状态推送到微信

    v_sql:='insert into we_chat_push_data(id,key_code,old_status,old_status_name,status,status_name,op_type,psn_code,psn_name,op_org_code,op_org_name,op_psn_code,

    op_psn_name,op_role,comment_type,comment_date,audit_comment,zh_name,mobile,email) select ctr_seq.nextval,ac.key_code,ac.status,cd.zh_cn_caption,c.status,wcpc.remark,ac.op_type,

    c.submit_psn_code,p1.zh_name,o.org_code,o.name,p2.psn_code,p2.zh_name,ac.role_id,ac.comment_type,ac.comment_date,ac.audit_comment,p.zh_title,p2.mobile,p2.email

    from audit_comment ac inner join we_chat_push_const wcpc on ac.comment_type = wcpc.key_type and ac.status = wcpc.status and ac.op_type = wcpc.op_type

    left join const_dictionary cd on ac.status = cd.code ';

    if v_push_type='proposal' then

    v_sql:=v_sql||'and cd.category = ''proposal_status'' left join proposal c left join proposal_cached p on c.pos_code=p.pos_code on ac.key_code = c.prp_code left join const_dictionary cdd on c.status = cdd.code and cdd.category = ''proposal_status''';

    v_sql:=v_sql||' left join person p1 on c.psn_code = p1.psn_code ';

    elsif v_push_type='contract' then

    v_sql:=v_sql||'and cd.category = ''contract_status'' left join contract c on ac.key_code = c.ctr_code left join project p on c.prj_code = p.prj_code left join const_dictionary cdd on c.status = cdd.code and cdd.category = ''contract_status''';

    v_sql:=v_sql||'left join person p1 on c.psn_code = p1.psn_code ';

    elsif v_push_type='acceptance' then

    v_sql:=v_sql||'and cd.category = ''acceptance_appstatus'' left join acceptance c on ac.key_code = c.act_code  left join project p on c.prj_code = p.prj_code left join const_dictionary cdd on c.status = cdd.code and cdd.category = ''acceptance_appstatus''';

    v_sql:=v_sql||'left join person p1 on c.submit_psn_code = p1.psn_code ';

    elsif v_push_type='acceptance_final' then

    v_sql:=v_sql||'and cd.category = ''acceptance_status'' left join acceptance c on ac.key_code = c.act_code  left join project p on c.prj_code = p.prj_code left join const_dictionary cdd on c.status = cdd.code and cdd.category = ''acceptance_status''';

    v_sql:=v_sql||'left join person p1 on c.submit_psn_code = p1.psn_code ';

    end if;

    v_sql:=v_sql||'left join person p2 on ac.psn_code = p2.psn_code left join organization o on p2.org_code = o.org_code where ac.comment_date > :v_begin_audit_date and ac.comment_date <= :v_end_audit_date and ac.comment_type =:v_push_type order by ac.comment_date';

    v_cursor := dbms_sql.open_cursor;--打开游标

    dbms_sql.parse(v_cursor, v_sql, dbms_sql.native);--解析sql

    dbms_sql.bind_variable(v_cursor, ':v_begin_audit_date', v_begin_audit_date);   --绑定变量

    dbms_sql.bind_variable(v_cursor, ':v_end_audit_date', v_end_audit_date);

    dbms_sql.bind_variable(v_cursor, ':v_push_type', v_push_type);

    --dbms_output.put_line(v_cursor);

    v_stat :=dbms_sql.execute(v_cursor);--执行

    dbms_sql.close_cursor(v_cursor);--关闭游标

    --execute immediate (v_sql);

    commit;

    update we_chat_push_index wcpi

    set wcpi.max_date = v_end_audit_date

    where wcpi.key_type = 'max_audit_to_wechat' and wcpi.push_type=v_push_type;

    commit;

    主要是使用oracle中dbms_sql包;

    展开全文
  • TBL_NAMECOLM_NAMEOPER_CODERULE_CMPAR_VALUEAND_OR_ORSTORE_DISTRORTE_ID=22410034ASTORE_MASTERZONE=贵州需要拼接成:STORE_DISTRO.RTE_ID='22410034' and STORE_MASTER.ZONE='贵州'1. 创建临时表存放查询后的数据...

    TBL_NAMECOLM_NAMEOPER_CODERULE_CMPAR_VALUEAND_OR_OR

    STORE_DISTRORTE_ID=22410034A

    STORE_MASTERZONE=贵州

    需要拼接成:

    STORE_DISTRO.RTE_ID='22410034' and  STORE_MASTER.ZONE='贵州'

    1. 创建临时表存放查询后的数据,临时表可以根据实际查询结果创建(create table wmedi.wave_distro_filter... ..)

    2. 创建自定义函数get_wave_query_param,用来拼接完整的Where条件

    3. 定义sql字符,后面接上get_wave_query_param函数返回的筛选条件,通常情况下PL/SQL是不能直接运行的,需要用到execute immediate执行SQL,写入临时表,最后从临时表读取数据,(如果直接用execute immediate ‘select ... from ...’,很难返回出结果集,所以采用临时表存放数据)

    declare strsql varchar2(3000);

    strwhere varchar2(1000);

    begin

    execute immediate 'truncate table wmedi.wave_distro_filter';

    strsql:='insert into wmedi.wave_distro_filter select store_distro.* ' ||

    'from store_distro  '||

    'inner join store_master on store_distro.store_nbr=store_master.store_nbr' ||

    ' where ' ;

    select get_wave_query_param('201207110076') into strwhere from dual;

    strsql:=strsql || strwhere;

    execute immediate strsql;

    end;

    create or replace function get_wave_query_param (p_wave_nbr in carton_hdr.wave_nbr%type) return varchar as v_query_param varchar2(1000); begin select replace(text,';','') into v_query_param  from ( select row_number()over(partition by groupname order by groupname,lvl desc) rn,groupname,text from ( select t.groupname,level lvl,SYS_CONNECT_BY_PATH(t.strwhere,' ; ') text from ( select row_number()over(partition by rule_sel_dtl.rule_id order by rule_sel_dtl.sel_seq_nbr) id,'sqlwhere' groupname,tbl_name||'.'||colm_name||oper_code||''''||rule_cmpar_value||''' '||(case and_or_or when 'A' then 'and' when 'O' then 'or' else '' end) strWhere   from rule_sel_dtl where rule_id in (select rule_id                      from wave_rule_parm                     where wave_parm_id in                           (select wave_parm_id                              from wave_parm                             where wave_nbr = p_wave_nbr)                       and rule_prty = 1) ) t connect by t.groupname=prior t.groupname and id-1=prior id ) t ) t where t.rn=1; return v_query_param; exception   when others then     return null; end;

    展开全文
  • 日期和时间是分开存放的,在页面展示的时候要获得‘yyyy-mm-dd hh24:mi:ss’格式展示, 使用CONCAT函数 展示结果
  • CREATE OR REPLACE FUNCTION EXISTS2 (IN_SQL IN VARCHAR2)RETURN NUMBERIS/*********************************************************** 使用示例* begin* if EXISTS2('select * from dual where 1=1')=1 then* ....
  • 单引号问题(')在oracle中4个单引号''''代表一个单引号'。在动态sql拼凑中我们经常需要拼凑单引号。比如:变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM'||'''';动态sql中用单引号:sqlStr := 'select * from ...
  • 虽说Oracle的动态SQL语句使用起来确实很方便,但是其拼装过程却太麻烦。尤其在拼装语句中涉及到date类型字段时,拼装时要加to_char先转换成字符,到了sql中又要使用to_date转成date类型和原字段再比较。例如有这样一...
  • 前段时间有个需求需要导出数据库的500...就写了个拼接sql。select ‘select dbms_metadata.get_ddl(‘‘‘ ||segment_type|| ‘‘‘,‘‘‘ ||segment_name|| ‘‘‘,‘‘‘ || owner || ‘‘‘) from dual;‘ from ...
  • sql字符串连接函数

    2021-05-05 09:41:09
    sql 字符串连接函数在sql中字符串连接函数我们学用到CONCAT()来,CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起sql 字符串连接函数在sql中字符串连接函数我们学...
  • ORACLE的字段拼接小记

    2020-12-31 12:32:42
    1 连接符号“||”的使用,能将多个表中不同的字段进行拼接。1)单表的两个字段拼接selectbxze||'#'||jkdh from bx_bxdj结果:55471#BX12000252)多表联合查询,表间字段的拼接,bmmc为gg_bmxx中的字段,jkdh为bx_bxdj...
  • //数据 ta col_1 col_2 ----------- a b c d //结果: col_1 col_2 ----------- a z0001 b z0002 c z0003 d z0004 // create table ta( col_1 varchar2(2), col_2 varchar2(7)) / insert into ta select 'a','' from...
  • 要实现的是去重按顺序分组拼接字段,且输出表中需要拼接多个字段。1、查了网上大概有四种方法,各有特点:1、wmsys.wm_concat(column)2、listagg (column,[,]) within group (order by ) [over (partition by )]3、...
  • oracle like 条件拼接

    2021-05-01 06:03:24
    (1) ibatis xml配置:下面的写法只是简单的转义 namelike ‘%$name$%‘(2) 这时会导致sql注入问题,比如参数name传进一个单引号“‘”,生成的sql语句会是:name like ‘%‘%‘(3) 解决方法是利用字符串连接的方式来...
  • SQLOracle中同一列的多行记录拼接成一个字符串用SQLOracle中同一列的多行记录拼接成一个字符串[sql]-- 原始数据-- a 111-- b 222-- a 333-- a 444-- b 555-- 最终结果-- a 111*333*444SELECTL4.L_TIME,MAX...
  • Oracle PL/SQL if 语句

    2021-05-04 07:02:19
    例如,当在以下IF语句中计算表达式时,如果第一个操作数为FALSE或NULL,PL / SQL将停止计算并立即执行ELSE分支: IF condition1 AND condition2 THEN ... ELSE ... END IF; 当condition1为FALSE或NULL时,PL / SQL...
  • 前言简单描述一下场景,在Oracle的一个存储过程中遍历一个Cursor,然后在循环中需要用到in查询语句,而in里面的条件正是游标当前行的一个的字段值类型为字符串,形如:而存储过程中又自然而然的写了这样的语句(重点...
  • 1.有时候需要Group By 后,对某些字段进行拼接,并在分组结果中展示出来,可以使用wm_concat快速实现 表如下: ,理想结果为 则sql为 select name,wm_concat(hobby) as hobby from Y_test01 group by name 
  • oracle sql语句运行效率

    2021-05-08 17:11:46
    --当前执行sql语句SELECT a.SID ,a.SERIAL# ,a.USERNAME ,b.PARSE_CALLS ,b.PARSING_SCHEMA_NAME ,b.CPU_TIME / 1000000 ,b.ELAPSED_TIME / 1000000 ,b.DISK_READS ,b.DIRECT_WRITES ,b.BUFFER_GETS ,a.event ,b.sql...
  • 单引号问题(')在oracle中4个单引号''''代表一个单引号'。在动态sql拼凑中我们经常需要拼凑单引号。比如:变量 中带单引号:IV_DATE_FORMAT:=''''||'YYYYMM'||'''';动态sql中用单引号:sqlStr := 'select * from ...
  • 比较Oracle SQL中的两个字段的值(Comparing two fields' values in Oracle SQL)我在Oracle中有这样的声明:select agnt_name,exporter_namefrom(select agnt_name,exporter_namefrom Exportersunion allselect agnt_...
  • 今天用python的oc_Oracle连接数据库执行了一些sql脚本,有一条语句报"ORA-01756"引号内的字符串没有正确结束的错误,提示分号前的语句没有正确结束,因为我的分号是需要直接拼在字符串里的,谁知道cx_Oracle不转义,...
  • Ora-03114与Oracle In 拼接字符串的问题刚深入接触Oracle不久(大学里以及刚参加工作时学到的Oracle知识只能算是皮毛),因为之前使用SqlServer有将近两年的时间,对SqlServer相对来说很熟悉,比较而言,Oracle真心很 ......
  • Oracle实现字符串拼接和分离功能的方法(LISTAGG函数),oraclelistagg字符串拼接(String Aggregation Techniques)是数据处理时经常需要用到一个技术,比如需要按时间顺序拼装一个快递的运输记录,或者将流程中各个...
  • 比如下面两列:SQL> select deptno,ename from emp where deptno is not null;20 SMITH30 ALLEN30 WARD20 JONES30 MARTIN30 BLAKE10 CLARK20 SCOTT10 KING30 TURNER20 ADAMS30 JAMES20 JAMES...
  • 所以我有一个看起来像这样的查询:SELECT IncidentNumber,ToiletType,ToiletDangers,IncidentDateFROM Core.LostLawsuits…返回以下结果:+----------------+------------+---------------------------+------------...
  • 1.拼接多的值列 这是横向凭借=== 同一行数据 不同列的拼接===SELECT RIP.P_TS ||‘,‘|| RIP.P_DTFROM RI_PAY RIP where RIP.O_NBR=‘RI201503240002‘查询结果: 1427185223921,2015-03-182.拼接多行数据select wm_...
  • 之前项目中写的一个大的存储过程 中间用到的SQL字符串拼接的方法 来完成业务的流程 类似SQL的动态拼接把 为什么要有用到这种形式 因为我这个存储过程里面要处理 至少三个系统的六种情况 所以使用拼接的方式是最...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,860
精华内容 10,744
关键字:

oraclesql拼接