Подстрока в Tsql, используя длину - PullRequest
1 голос
/ 30 марта 2012

Хорошо, поэтому я пытаюсь получить первую из последних 2 цифр числа.Возьмите, например, 12345601, я хочу знать, является ли цифра от второй до последней цифры 0. Если 0, тогда мне нужно выбрать только последнюю цифру целого числа, если отличается от 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 ]

3 голосов
/ 30 марта 2012

Попробуйте это:

SELECT CASE WHEN LEFT(RIGHT(@myint,2),1) = 0 THEN RIGHT(@myint,1) ELSE RIGHT(@myint,2) END
1 голос
/ 30 марта 2012

Попробуйте вместо этого:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...