Trim 列中逗号分隔值中的前导零
Trim leading zeros in comma separated values in a column
Ex.Table商店
store_id Employee_id
0020,0345,0002345 0234
0034 0943
我尝试了 REPLACE(LTRIM(REPLACE(store_id,'0',' ')),' ','0')
,但它仅针对第一个值删除了前导零。
如何在 sql 查询中获取不带前导零的员工的所有商店 ID?
可能吗?
如果您只想删除前导零 - 并且没有太多 - 您可以使用 replace()
:
select substr(replace(replace(replace(concat(',', store_id), ',0', ','),
',0', ','),
',0', ',')
2, length(store_id)
这只是将逗号后跟零替换为逗号,在字符串的开头和结尾添加和删除逗号。 substr()
和 length()
不同的数据库名称略有不同,但功能大致相同。
如果这是 rdbms 中的 table,则它违反了 1NF。你应该避免这样做。如果可能,请使用连接点 tables 或引用 tables。否则,您可以使用相同的架构并插入与单个 Employee_id 相对应的多个条目。
现在,要以通用方式解决这个问题,只有一个解决方案,UDF 的。 用户自定义函数 规格为here
或者把这种处理移到客户端。
Ex.Table商店
store_id Employee_id
0020,0345,0002345 0234
0034 0943
我尝试了 REPLACE(LTRIM(REPLACE(store_id,'0',' ')),' ','0')
,但它仅针对第一个值删除了前导零。
如何在 sql 查询中获取不带前导零的员工的所有商店 ID?
可能吗?
如果您只想删除前导零 - 并且没有太多 - 您可以使用 replace()
:
select substr(replace(replace(replace(concat(',', store_id), ',0', ','),
',0', ','),
',0', ',')
2, length(store_id)
这只是将逗号后跟零替换为逗号,在字符串的开头和结尾添加和删除逗号。 substr()
和 length()
不同的数据库名称略有不同,但功能大致相同。
如果这是 rdbms 中的 table,则它违反了 1NF。你应该避免这样做。如果可能,请使用连接点 tables 或引用 tables。否则,您可以使用相同的架构并插入与单个 Employee_id 相对应的多个条目。
现在,要以通用方式解决这个问题,只有一个解决方案,UDF 的。 用户自定义函数 规格为here
或者把这种处理移到客户端。