Oracle pl / sql查询向数字添加空格,使其右对齐

时间:2013-11-25 20:25:19

标签: sql oracle plsql oracle11g

我有一个查询,它返回一个数字(16,2)数据类型。

所以查询SELECT PRICE FROM PRODUCT;

它应该返回

   10.00
 1234.00     --> values are right aligned; space needs to be added to 10.00 
                 to align it with 1234.00

要对齐多少个空格是动态的我们知道数据类型的长度是(14,2),所以我想将数字转换为char并在数字的左边添加空格。

  SELECT LPAD(p.price , (17 - LENGTH(TO_CHAR(p.price))),' ')  FROM Product.

我尝试了上述查询,但没有给我正确的结果。

我只是想知道它有什么问题

2 个答案:

答案 0 :(得分:5)

LPAD将表达式的终极长度作为第二个参数,而不是 add 的字符数:

SELECT LPAD(TO_CHAR(p.price,'99999990D99'),17) FROM Product p

答案 1 :(得分:0)

从产品p中选择LPAD(TO_CHAR(p.price,'99999990D009'),17)