我有一列不同長度的數字,我想用零填充它們,以使它們都與最大數字一樣長。像這樣: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