sql中的空字符串

时间:2011-05-11 08:34:11

标签: sql

有两张桌子

1)HR_PAY_EMPLOYEE_PAYSLIP_HISTORY_DETAILS

2)HR_PAY_EMPLOYEE_PAYSLIP_HISTORY

表1有PAY_HEAD_ID,PAYSLIP_HISTORY_ID和VALUE作为其列

表2有EMPLOYEE_ID,PAYSLIP_HISTORY_ID作为其列

我在PAYSLIP_HISTORY_ID上映射表1和表2以检索EMPLOYEE_ID,PAY_HEAD_ID,VALUE

问题是,所有员工都没有PAY_HEAD_ID和VALUEs

如何检索所有员工的所有PAY_HEAD_ID及其值(0.00,如果未存储该值)?

2 个答案:

答案 0 :(得分:1)

这可能会略有不同,具体取决于您使用的SQL方言,但您需要使用左外连接,如下所示:

SELECT
    EMPLOYEE_ID,
    PAY_HEAD_ID,
    isnull(VALUE, 0.00) as VALUE
FROM
    HR_PAY_EMPLOYEE_PAYSLIP_HISTORY HISTORY
    LEFT OUTER JOIN HR_PAY_EMPLOYEE_PAYSLIP_HISTORY_DETAILS DETAILS
    ON HISTORY.PAYSLIP_HISTORY_ID = DETAILS.PAYSLIP_HISTORY_ID

答案 1 :(得分:0)

这取决于您使用的数据库软件,但大多数都有一个NVL()函数,允许您更改NULL的值。如果它是一个空字符串而不是null,请使用DECODE()(或等效的)语句来更改其值。