首页 > 解决方案 > 根据 SQL 中的设置规则过滤列中的行

问题描述

我是 SQL 新手,我想根据设置的规则过滤列上的值

Group    ID
1      09239820
2      2872498938
2      1267
3      23219823983
3      267839236
4      33287442

我想用字母替换 ID 列中的第 1、第 2 和第 4 个数字

Replace 1st with N
Replace 2nd with X
Replace 4TH with D 

预期输出:

Group    ID
 1      NX2D9820
 2      NX7D498938
 2      NX6D
 3      NX2D9823983
 3      NX7D39236
 4      NX2D7442

标签: mysqlsql

解决方案


你可以试试这个:

SELECT
Group,
CONCAT('NX', SUBSTRING(ID, 3, 1), 'D', SUBSTRING(ID, 5)) AS ID
FROM tableName;

这里我们有子字符串的连接:

CONCAT('NX', SUBSTRING(ID, 3, 1), 'D', SUBSTRING(ID, 5))

其中:
'NX'- 第 1 和第 2 个字符,
SUBSTRING(ID, 3, 1)- 3d 字符,
'D'- 第 4 个字符,
SUBSTRING(ID, 5)- 字符串的其余部分。


推荐阅读