Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql中的空字符串_Sql - Fatal编程技术网

sql中的空字符串

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)?这取决于您使用的数据库软件,但

我有两张桌子

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)?

这取决于您使用的数据库软件,但大多数都有一个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语句更改空字符串的值。