SQL格式转换需求:将-AE,IN,US,AU转为-AE,-IN,-US,-AU
实现将数据库列值转换为指定格式的SQL方法
针对需求(将列值如 -AE,IN,US,AU 转换为 -AE,-IN,-US,-AU),不同SQL方言的实现方法如下:
MySQL/MariaDB
直接使用REPLACE函数替换逗号为,-即可:
SELECT REPLACE(your_column, ',', ',-') AS formatted_column FROM your_table;
该方法会把字符串中所有逗号替换成,-,刚好匹配所需格式。
PostgreSQL
同样可用REPLACE函数快速转换:
SELECT REPLACE(your_column, ',', ',-') AS formatted_column FROM your_table;
如果需要兼容开头没有-的异常数据,可增加判断逻辑:
SELECT CASE WHEN your_column IS NULL THEN NULL WHEN SUBSTRING(your_column FROM 1 FOR 1) = '-' THEN REPLACE(your_column, ',', ',-') ELSE '-' || REPLACE(your_column, ',', ',-') END AS formatted_column FROM your_table;
SQL Server
使用REPLACE函数实现基础转换:
SELECT REPLACE(your_column, ',', ',-') AS formatted_column FROM your_table;
兼容异常数据的版本:
SELECT CASE WHEN your_column IS NULL THEN NULL WHEN LEFT(your_column, 1) = '-' THEN REPLACE(your_column, ',', ',-') ELSE '-' + REPLACE(your_column, ',', ',-') END AS formatted_column FROM your_table;
注:上述代码中的
your_column和your_table需要替换为你实际的列名和表名。
内容的提问来源于stack exchange,提问作者rafat
相关产品推荐
相关产品推荐

