如何從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