如何才能从varchar中删除前0个字符?
例如'000303'==> '00303'
我尝试了这个没有成功,删除了所有0个字符:
SELECT SUBSTRING('000303', PATINDEX('%[^0]%', '000303'),LEN('000303'));
由于
答案 0 :(得分:6)
尝试使用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建议)
答案 1 :(得分:1)
试试这个:
SELECT RIGHT(MyColumn, LEN(MyColumn) - 1)
这将删除varchar列中的第一个字符。
如果特定于0,请尝试:
SELECT CASE WHEN LEFT(MyColumn,1) = '0'
THEN RIGHT(MyColumn, LEN(MyColumn) - 1)
ELSE
MyColumn END
答案 2 :(得分:0)
像
这样的东西SELECT CASE WHEN LEFT(Mycol,1) = '0' THEN SUBSTRING(MyCOL, 2, LEN(MyCOL)) END