使用MSSQL从varchar中删除第一个前导0

时间:2015-05-27 17:27:10

标签: sql-server tsql

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

例如'000303'==> '00303'

我尝试了这个没有成功,删除了所有0个字符:

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

由于

3 个答案:

答案 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