Subtr反向

时间:2016-04-15 08:45:56

标签: sql teradata

我试图将数字字段(大多数为8个字符长)的数字从最后一个数字返回到反方向的6个数字。 E.g

2345678-- i want 345678
56789356--789356

我使用以下代码:

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

但是,这不起作用。任何解决方案都非常感谢。

谢谢, 阿米特

2 个答案:

答案 0 :(得分:1)

使用RIGHT功能:

SELECT RIGHT(LEVN010,6) FROM X.table

或使用

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

答案 1 :(得分:1)

您的代码对于VarChar列是正确的,但您不需要指定FOR,它是可选的,默认为直到结束

SUBSTRING( LEVN010  from character_length(LEVN010)-5)

在TD15.10中,支持函数RIGHT

RIGHT(LEVN010, 6)

如果LEVN010是固定长度CHAR,则可能有尾随空格,您需要TRIM它们(我添加了FOR以消除尾随空格):

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

如果LEVN010INTEGER,您最好使用MOD

LEVN010 mod 1000000