【发布时间】:2021-11-23 09:22:15
【问题描述】:
我有一个字符串列,我想根据特定条件在其中添加前导零。 所有列都是 Varchar 并且需要保持原样以进行连接等。
示例表:
| Category | ID |
|---|---|
| A | 0516E24 |
| A | 51733F |
| A | F383036 |
| B | 5290W |
| C | 058Z2 |
| C | S36.98 |
我本质上是想在任何以字符“5”开头的代码中添加前导“0”。 我不想将前导零添加到不以“5”开头的任何其他值,例如上面看到的 F383036 和 S36.98 值。
我尝试了 CASE WHEN 语句,但出现错误(错误:无法将“”转换为 float8)
我的代码:
SELECT CASE WHEN CODE LIKE '5%' THEN '0' ELSE '' END + CODE AS CODE
FROM table
我正在寻找更新后的表格,如下所示,我将更正后的值加粗。
| Category | ID |
|---|---|
| A | 0516E24 |
| A | 051733F |
| A | F383036 |
| B | 05290W |
| C | 058Z2 |
| C | S36.98 |
感谢您的帮助,我完全迷路了。谢谢!
【问题讨论】:
-
您能否更新您的问题以包含您尝试过的 SQL
CASE语句? -
向我们展示你的
case表达尝试! -
顺便说一句,您使用的是哪个 dbms?
-
@jarlh 我正在使用 Vertica
标签: sql varchar vertica leading-zero