如何从varchar中仅删除前0个字符?

例如'000303'==>'00303'

我尝试不成功,将所有0个字符都删除了:

SELECT SUBSTRING('000303', PATINDEX('%[^0]%', '000303'),LEN('000303'));


谢谢

最佳答案

尝试使用STUFF函数

SELECT CASE WHEN LEFT('000303',1) = '0' THEN STUFF('000303',1,1,'') ELSE '000303' END


或使用RIGHT功能

SELECT CASE WHEN LEFT('000303',1) = '0' THEN RIGHT('000303', LEN('000303')-1) ELSE '000303' END


除了LEFT('000303',1) = '0'检查,您还可以使用

charindex('0','000303') = 1

'000303' LIKE '0%'(ughai建议)

07-28 13:51