2015-05-27 63 views

回答

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

看到这个问题和思想,'STUFF'非常适合此处,然后看到你的答案。 :)。那么你甚至可以使用''000303'LIKE'0%''如果你正在寻找'LEFT('000303',1)='0''的替代品' – ughai

+0

@ughai - 感谢兄弟更新。 –

+0

谢谢,我将探讨STUFF功能。 – Maxime

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 
+1

Downvoter关心评论! –

+4

第一条总是第一个字符,第二个如果列不以'0'开始则返回NULL –

+0

当我看到最初的答案时,在它被忍者编辑之前,它只会说“试试这个: SELECT RIGHT MyColumn,LEN(MyColumn) - 1) 这将从varchar列中移除第一个字符“,这是一个不完整的答案。由于JamesZ所说的原因,忍者的编辑不是一种改进。 – LittleBobbyTables

0

喜欢的东西

SELECT CASE WHEN LEFT(Mycol,1) = '0' THEN SUBSTRING(MyCOL, 2, LEN(MyCOL)) END