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

Max*_*ime 5 t-sql sql-server

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

例如'000303'==>'00303'

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

SELECT SUBSTRING('000303', PATINDEX('%[^0]%', '000303'),LEN('000303'));
Run Code Online (Sandbox Code Playgroud)

谢谢

Pரத*_*ீப் 6

尝试使用STUFFFunction

SELECT CASE WHEN LEFT('000303',1) = '0' THEN STUFF('000303',1,1,'') ELSE '000303' END
Run Code Online (Sandbox Code Playgroud)

或使用RIGHT功能

SELECT CASE WHEN LEFT('000303',1) = '0' THEN RIGHT('000303', LEN('000303')-1) ELSE '000303' END
Run Code Online (Sandbox Code Playgroud)

而不是LEFT('000303',1) = '0' 检查你也可以使用

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

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