SQL实现COND列截取:保留ITEM关键字及后续内容的方法
修剪COND列保留ITEM关键字及后续内容的方案
需求示例
表A(原始数据)
| ID | COND |
|---|---|
| 1 | ITEM = 'B967','B677','O342' |
| 2 | ITEM = 'J833','UR09','ILY7' |
| 3 | ITEM = 'B967, OJ87' |
| 4 | (CATE = 'OBRT', 'TMPT') AND (ITEM = 'UR09','ILY7') |
| 5 | CATE='ONTE,PNTE,QSDW,RVCG' OR ITEM=J833 |
表B(期望结果)
| ID | COND |
|---|---|
| 1 | ITEM = 'B967','B677','O342' |
| 2 | ITEM = 'J833','UR09','ILY7' |
| 3 | ITEM = 'B967, OJ87' |
| 4 | ITEM = 'UR09','ILY7') |
| 5 | ITEM=J833 |
分数据库实现代码
MySQL/MariaDB
使用LOCATE定位ITEM的起始位置,再通过SUBSTRING截取后续内容:
SELECT ID, SUBSTRING(COND, LOCATE('ITEM', COND)) AS COND FROM 表A;
SQL Server
通过CHARINDEX找到ITEM的位置,结合SUBSTRING和LEN截取到末尾:
SELECT ID, SUBSTRING(COND, CHARINDEX('ITEM', COND), LEN(COND)) AS COND FROM 表A;
Oracle
用INSTR定位ITEM,再用SUBSTR截取后续内容:
SELECT ID, SUBSTR(COND, INSTR(COND, 'ITEM')) AS COND FROM 表A;
以上代码均会从COND列中首次出现ITEM的位置开始,截取到字符串末尾,完全匹配需求结果。
内容的提问来源于stack exchange,提问作者NEWBIE
相关产品推荐
相关产品推荐

