使用length的sql中的子串

时间:2012-03-29 20:53:27

标签: sql tsql substring

好的,所以我想得到一个数字的最后两位数字中的第一个。以12345601为例,我想知道倒数第二个数字是否为0.如果为0则我需要它只选择int的最后一位,如果不是0则选择最后2位数。这就是我所拥有的:

declare @myint int
set @myint= 12345601
select case when substring(cast (@myint as varchar(50) ) , len(@myint)-1, len(@myint)-1 )     =   0 then right(@myint, 1)
else right(@myint, 2) end 

不幸的是,它不起作用,这就是:

substring(cast (@myint as varchar(50)), len(@myint)-1, len(@myint)-1 )

那个子串出现在01,但我需要它出现为0.任何想法?

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT CASE WHEN LEFT(RIGHT(@myint,2),1) = 0 THEN RIGHT(@myint,1) ELSE RIGHT(@myint,2) END

答案 1 :(得分:1)

请改为尝试:

SELECT CAST(RIGHT(@myint,2) as int)

如果你把它作为一个int转换它应该去除前导零...

您可以使用以下代码查看它:

declare @myint int
set @myint= 12345601
SELECT CAST(RIGHT(@myint,2) as int)
set @myint= 12345611
SELECT CAST(RIGHT(@myint,2) as int)