mysql - 根据 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
解决方案
你可以试试这个:
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)
- 字符串的其余部分。
推荐阅读
- c# - 将初始化的 ViewModel 添加到 ObservableCollection,显示空属性值
- javascript - Angular-多选下拉菜单-TypeError:无法读取未定义的属性“长度”
- xml - 用于动态属性分配的 XSLT 转换
- c - 套接字连接函数使用 4 次握手?
- haskell - haskell IO 中的新行
- azure - 使用 python 读取 jpg 时出现 Azure blob UnicodeDecodeError
- docker - 在 Docker 容器中使用 RegEx 进行 Grep?
- mysql - 如何从查询构建器的模型关系中获取数据?
- reactjs - React 没有导入 redux 动作,即使它被导出了
- sql - 如何将 2 个不同的数据集引用到 gsheet 查询公式中?