oracle关联两个字段,oracle字符串连接函数,||使两个或多个字段拼成一个字段

select t.id,

case

when t.id is not null

then concat(t.work_score,t.sort)

end haomingddd

from stu_workinfo t

在查询时往往需要拼字符串,在程序拼是容易想到的方法,但有时很不方便,

或者拼完以后程序又需要拼之前的字段,这样再拆字符串就很麻烦了。

用sql解决最多多出一个字段,这是你需要的,并不影响其他字段。

从这里我们还可以有其他很多品字段的方法,自己可以尝试着学习

select b.STUCODE stucodeb,b.STUDENT_NAME,

case

when b.STUCODE is not null

then b.STUCODE||'-'||b.STUDENT_NAME

end codename

,c.stucode,c.id classid from v_stu_student b,

(

select * from stu_class_ref a

-- where a.id=''

) c

where b.STUCODE=c.stucode

select k.stucode,k.codename from

(

select b.STUCODE stucodeb,b.STUDENT_NAME,

case

when b.STUCODE is not null

then b.STUCODE||'-'||b.STUDENT_NAME

end codename

,c.stucode,c.id classid from v_stu_student b,

(

select * from stu_class_ref a

-- where a.id=''

) c

where b.STUCODE=c.stucode

) k

where k.classid='45595522:134924a9ac0:-7fee'

Oracle数据,你可以使用内置的SQL函数以及PL/SQL块来实现这个需求。首先,你需要将字符串通过`SUBSTR`、`INSTR`和`DECODE`等函数分割成数组,然后利用`DISTINCT`关键字去除重复项,最后再使用`LISTAGG`函数重新组合字符串。以下是基本步骤: 1. 创建一个临时表或者变量来存储处理后的结果,因为Oracle不直接支持数组操作。 ```sql DECLARE v_input_string VARCHAR2(4000); v_split_values RAW(4000); -- 使用RAW类型可以避免长度限制 v_unique_values RAW(4000); BEGIN -- 假设v_input_string是你需要处理的字段 v_input_string := 'your_string_with_comma_separated_values'; -- 分割字符串 FOR i IN 1..LENGTH(v_input_string) - LENGTH(REPLACE(v_input_string, ',', '')) + 1 LOOP IF v_input_string INSTR(i, ',') > 0 THEN v_split_values.extend; v_split_values(v_split_values.COUNT) := SUBSTR(v_input_string, i, INSTR(i, ',') - i); END IF; END LOOP; -- 去除重复并重新组合 SELECT DISTINCT SYS_REFCURSOR INTO :v_unique_values FROM TABLE(SYS.DBMS_DEBUG_VC2WRAP(v_split_values)); v_unique_values := DBMS_DEBUG_VC2VAR(v_unique_values); -- 更新字段 UPDATE your_table SET your_column = LISTAGG(your_column_value, ',') WITHIN GROUP (ORDER BY your_column_value) OVER (PARTITION BY ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) WHERE ROWNUM = 1; -- 或者根据实际情况调整条件 END; / ``` 记得替换`your_string_with_comma_separated_values`、`your_table`, `your_column`, 和 `your_column_value`为实际的列名和表名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值