sql中的空字符串
我有两张桌子 1) 人力资源\工资\员工\工资单\历史记录\详细信息 2) 人力资源\工资\员工\工资单\历史记录 表1以PAY_HEAD_ID、PAY Slip_HISTORY_ID和VALUE作为其列 表2的列为EMPLOYEE_ID、PAYSLIP_HISTORY_ID 我将表1和表2映射到工资条历史记录ID,以检索员工ID、工资头ID和值 问题是,并非所有员工都拥有所有的薪酬ID和价值观sql中的空字符串,sql,Sql,我有两张桌子 1) 人力资源\工资\员工\工资单\历史记录\详细信息 2) 人力资源\工资\员工\工资单\历史记录 表1以PAY_HEAD_ID、PAY Slip_HISTORY_ID和VALUE作为其列 表2的列为EMPLOYEE_ID、PAYSLIP_HISTORY_ID 我将表1和表2映射到工资条历史记录ID,以检索员工ID、工资头ID和值 问题是,并非所有员工都拥有所有的薪酬ID和价值观 如何检索所有员工的所有工资头ID及其值(如果未存储值,则为0.00)?这取决于您使用的数据库软件,但
如何检索所有员工的所有工资头ID及其值(如果未存储值,则为0.00)?这取决于您使用的数据库软件,但大多数都有一个NVL()函数,允许您更改NULL值。如果它是空字符串而不是null,请使用DECODE()语句(或等效语句)更改其值。这可能会略有不同,具体取决于您使用的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
然后,您希望COALESCE()函数等效于DB2的NVL(),或者使用CASE语句更改空字符串的值。