如何从表T的ICD10字段移除小数点并保留无小数编码
嘿,这个需求其实很好解决,用字符串替换函数就能轻松实现!不同数据库的函数语法基本一致,我给你整理了几种常用数据库的写法:
移除ICD10字段中的小数点解决方案
不管你的数据库是哪种,核心思路都是把字段里的小数点(.)替换成空字符串,这样有小数点的编码会被去掉点,原本没有小数点的编码则保持不变。
常用数据库实现代码
MySQL/MariaDB
使用REPLACE()函数即可:
SELECT REPLACE(icd10, '.', '') AS ICD10 FROM T;
SQL Server
同样用REPLACE()函数,语法完全一致:
SELECT REPLACE(icd10, '.', '') AS ICD10 FROM T;
Oracle
Oracle也支持REPLACE()函数,写法相同:
SELECT REPLACE(icd10, '.', '') AS ICD10 FROM T;
PostgreSQL
PostgreSQL同样可以用REPLACE(),或者你也可以用TRANSLATE()(不过REPLACE更直观易懂):
SELECT REPLACE(icd10, '.', '') AS ICD10 FROM T;
效果验证
用你提供的测试数据来看:
- 原编码
F84→ 替换后依然是F84 - 原编码
F84.0→ 替换后变成F840 - 原编码
H93.25→ 替换后变成H9325
完全符合你想要的输出结果。
内容的提问来源于stack exchange,提问作者AS91
相关产品推荐
相关产品推荐

