好的,所以我想得到一个数字的最后两位数字中的第一个。以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.任何想法?
答案 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)