use*_*992 0 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
Run Code Online (Sandbox Code Playgroud)
要对齐多少空格是动态的我们知道数据类型的长度是(14,2),所以我想将数字转换为char并在数字的左边添加空格.
SELECT LPAD(p.price , (17 - LENGTH(TO_CHAR(p.price))),' ') FROM Product.
Run Code Online (Sandbox Code Playgroud)
我尝试了上面的查询,但它没有给我正确的结果.
我只是想知道它有什么问题
LPAD将表达式的最终长度作为第二个参数,而不是要添加的字符数:
SELECT LPAD(TO_CHAR(p.price,'99999990D99'),17) FROM Product p
Run Code Online (Sandbox Code Playgroud)