如何从varchar中只删除前0个字符?使用MSSQL从varchar中删除第一个前导0
例如 '000303' ==> '00303'
我想这没有成功,所有的0字符被删除:
SELECT SUBSTRING('000303', PATINDEX('%[^0]%', '000303'),LEN('000303'));
由于
如何从varchar中只删除前0个字符?使用MSSQL从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建议)
试试这个:
SELECT RIGHT(MyColumn, LEN(MyColumn) - 1)
这将从varchar列中移除第一个字符。
如果它是特定0,那么试试这个:
SELECT CASE WHEN LEFT(MyColumn,1) = '0'
THEN RIGHT(MyColumn, LEN(MyColumn) - 1)
ELSE
MyColumn END
Downvoter关心评论! –
第一条总是第一个字符,第二个如果列不以'0'开始则返回NULL –
当我看到最初的答案时,在它被忍者编辑之前,它只会说“试试这个: SELECT RIGHT MyColumn,LEN(MyColumn) - 1) 这将从varchar列中移除第一个字符“,这是一个不完整的答案。由于JamesZ所说的原因,忍者的编辑不是一种改进。 – LittleBobbyTables
喜欢的东西
SELECT CASE WHEN LEFT(Mycol,1) = '0' THEN SUBSTRING(MyCOL, 2, LEN(MyCOL)) END
看到这个问题和思想,'STUFF'非常适合此处,然后看到你的答案。 :)。那么你甚至可以使用''000303'LIKE'0%''如果你正在寻找'LEFT('000303',1)='0''的替代品' – ughai
@ughai - 感谢兄弟更新。 –
谢谢,我将探讨STUFF功能。 – Maxime