2016-04-15 45 views
0

我想從數字字段(大多數是8個字符長)中的數字從最後一位數字返回到6位數字的相反方向。 E.g逆向子行爲

2345678-- i want 345678 
56789356--789356 

我使用下面的代碼:

sel SUBSTRING(LEVN010 from character_length(LEVN010)-5 for 6) FROM X.TABLE 

但是,這是行不通的。任何解決方案,這是非常讚賞。

感謝, 阿米特

+0

什麼是'LEVN010'的實際數據類型。你的代碼對於Varchar是正確的。 – dnoeth

回答

1

使用RIGHT功能:

SELECT RIGHT(LEVN010,6) FROM X.table 

或使用

SELECT SUBSTRING(LEVN010,-6) FROM X.table 
+0

似乎不支持右功能 – user3901666

+0

嘗試用'SUBSTRING(LEVN010,-6)'代替 – fonfonx

+0

感謝fonfonx的回覆。它工作正常。 :) – user3901666

1

你的代碼是一個VARCHAR列是正確的,但你並不需要specifiy FOR,它是可選的,默認爲直到結束

SUBSTRING(LEVN010 from character_length(LEVN010)-5) 

在TD15.10功能RIGHT支持:

​​

如果LEVN010是固定長度CHAR有可能是尾隨空格,你需要TRIM他們(我加了FOR回擺脫後面的空格的):

SUBSTRING(LEVN010 from character_length(TRIM(LEVN010))-5 FOR 6) 

如果LEVN010INTEGER你最好使用MOD

LEVN010 mod 1000000 
+0

是的,你是正確的節食..我鑄造了專欄字符和它的工作正常。 我在TD 14上,這就是爲什麼Right不工作。 模組將在TD 14上工作嗎?我將不得不在週一進行測試。 非常感謝:) – user3901666