我有一个表,其中包含employee_id
中的值,这些值的长度为5、6或8位数字。我的父母报告员工ID为8位数字。
如果是5位,我要添加100
,如果是6位,请添加10
,如果8位没有变化。
如何在SQL中编写查询以使所有员工ID都为8位?
这是我的代码:
case
when length(`Employee ID`)=6 then RIGHT(CONCAT("10" , `Employee ID`), 8) AS `Employee ID`
when length(`Employee ID`)=5 then RIGHT(CONCAT("100" , `Employee ID`), 8) AS `Employee ID`
else length(`Employee ID`)=8
END
但是没有运气。失败了
谢谢。
最佳答案
假设employee_id
是数字,我会这样做:
SELECT employee_id,
CASE
WHEN employee_id >= 10000000
THEN employee_id
ELSE employee_id + 10000000
END new_employee_id
FROM t
Demo on DB Fiddle:
| employee_id | new_employee_id |
| ----------- | --------------- |
| 12345678 | 12345678 |
| 123456 | 10123456 |
| 12345 | 10012345 |
关于mysql - SQL查询员工ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55132413/