我有2张桌子:
Table A: TableB:
ID ID Value
1 2 0.5
2 3 10
3
我的查询:
SELECT A.ID,B.VALUE FROM A LEFT JOIN B ON A.ID = B.ID;
结果:
ID Value
1
2 0.5
3 10
我想用' - '替换null值,我尝试使用NVL(B.VALUE,' - '),但这不起作用,所以我该怎么办?
“不起作用”对您的问题不是一个非常有用的描述。我的猜测是你得到了“ORA-01722:无效数字”,因为NVL( B.value, '-' )
会尝试将第二个参数转换为与第一个相同的数据类型,并且你不能将“ - ”转换为数字。但是如果你在TO_CHAR
中包装第一个参数,它就可以了,如:
SELECT A.ID, NVL( TO_CHAR( B.VALUE ), '-' ) FROM TableA A LEFT JOIN TableB B ON A.ID = B.ID;
SQL Fiddle的例子