我有两张桌子。
表1:
-------------------------------
| product_id | product number |
-------------------------------
| 1001 | 67E432D |
| 1002 | 888CDE32 |
| 1003 | 54D32EC2 |
-------------------------------
表2:
--------------------------
| product_id | desc |
--------------------------
| 1001 | product 1 |
| 1003 | peoduct 3 |
--------------------------
在加入表1和表2后,我得到以下结果。
-------------------------------------------
| product_id | product number | desc |
-------------------------------------------
| 1001 | 67E432D | product 1 |
| 1002 | 888CDE32 | |
| 1003 | 54D32EC2 | product 3 |
-------------------------------------------
现在你可以看到产品3的'desc'列现在是空的。我怎么可能在该列中有0?类似的东西:
-------------------------------------------
| product_id | product number | desc |
-------------------------------------------
| 1001 | 67E432D | product 1 |
| 1002 | 888CDE32 | 0 |
| 1003 | 54D32EC2 | product 3 |
-------------------------------------------
可能有一些功能可以完成这项工作,但我想我不知道它..但是。
答案 0 :(得分:4)
听起来你只想使用NVL
SELECT product_id, product_number, NVL( desc, '0' )
FROM table_1
LEFT OUTER JOIN table_2 USING (product_id)
ORDER BY product_id
答案 1 :(得分:1)
由于此问题标有 Oracle ,Justin的回答很好。
如果您关心可移植性,请考虑使用 coalesce :基于Justin的回答:
SELECT product_id, product_number, coalesce( desc, '0' )
FROM table_1
LEFT OUTER JOIN table_2 USING (product_id)
ORDER BY product_id
至于差异,请查看here