我有一列不同长度的数字,我想用零填充它们,以使它们都与最大数字一样长。像这样:LPAD列的最大长度
SQL> SELECT LPAD(PROD_ID, 5, 0) AS PROD_ID
2 FROM PRODUCTS_TBL;
PROD_
-----
11235
00119
00013
00015
00222
00301
00302
00303
00006
00087
00009
00090
但我不希望使用5号,我想使用PROD_ID功能,以防后来的变化。我试图
SQL> SELECT LPAD(PROD_ID, MAX(LENGTH(PROD_ID)), 0)
2 FROM PRODUCTS_TBL;
但
SELECT LPAD(PROD_ID, MAX(LENGTH(PROD_ID)), 0)
*
ERROR at line 1:
ORA-00937: not a single-group group function
有什么建议?
有什么意思,在将来某个日子(当你穿过10^n的障碍物时)所有这些数字都会被重新格式化?通常,在尝试创建稳定的标识符时,会应用这样的填充。 – 2012-01-12 11:51:18
我同意@Damien - 似乎如果你有*做到这一点,它应该在UI端完成,而不是在数据库端完成。 – MJB 2012-01-12 12:21:41
我会记住这一点,谢谢。但现在,我不必这样做,我只是想知道。 – jalopezp 2012-01-12 13:12:25