select CASE WHEN mnt < 10 THEN
concat('0' , mnt)
ELSE mnt
END AS month_w_0
from ( select month([Transact_Date]) mnt
from test_t) A
我已经意识到你的问题所在了。你也可以这样做:
SELECT
CASE
WHEN month([Transact_Date]) < 10
THEN CONCAT(str(0),STR(month([Transact_Date]),1))
ELSE STR(month([Transact_Date]),1)
END AS month_w_0
from test_t
2条答案
按热度按时间uurv41yg1#
我认为左填充技巧是你想要的。假设您的数据库是sql server:
你不需要一个
CASE
这个表达式。在较新版本的sql server中FORMAT
函数也可以处理这个问题。snvhrwxg2#
我已经测试过了,它会返回您想要的结果:
我已经意识到你的问题所在了。你也可以这样做:
问题只是else部分,我认为这是因为case when子句只返回一种类型的od数据。在then部分中,您尝试了retunr字符串和else部分编号。
希望这有帮助。。。
这是一个演示