带有Cast,LPad和Max的SQL SELECT语句

时间:2016-01-20 15:33:09

标签: sql oracle select

这个select语句有问题吗?

    SELECT SUBSTR(FIELD_A,10,3) as MOVID, 
    MAX(LPAD((CAST(SUBSTR(FIELD_A,-3,3) as INT) + 1 ), 3, 0)) as NEXTMOVID
    FROM ...

该字段为VARCHAR2

我想保留3个字符(这是数字)并添加1并与另一个varchar2连接

  1. 检索FIELD_A
  2. 的一部分
  3. 转换为整数
  4. 添加1
  5. 左键将其填充为3个字符,0
  6. 抓住MAX
  7. 后来我与另一个字段连接
  8. 想知道是否有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

据我了解,您需要关注:

SELECT SUBSTR(FIELD_A,10,3) as MOVID, 
       to_char(to_number(SUBSTR(FIELD_A, -3, 3)) + 1), '000') as NEXTMOVID
FROM ...