2012-03-29 46 views
1

好的,所以我打算獲取數字的最後兩位數字的第一個。以12345601爲例,我想知道倒數第二個數字是否爲0.如果是0,那麼我需要它只選擇int的最後一個數字,如果不是0,則選擇最後兩個數字。這就是我:在tsql中使用長度的子串

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

你可以用一些部門和提醒來解決這個問題... – 2012-03-29 20:56:37

+0

提醒,即關於餘數 – sasfrog 2012-03-29 20:58:03

+2

substring(expression,start,_length_) – Steve 2012-03-29 20:58:44

回答

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) 
3

試試這個:

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

工作感謝! – user1301842 2012-03-29 21:02:01

+0

看看@Abe Miessler的回答是很好的解決方案。 – 2012-03-29 21:02:04