如何从2个表中选择数据并将NULL转换为0?

时间:2015-04-13 13:28:46

标签: sql sql-server

我有2个表,Table1 (Id, Name, Email)Table2 (Id, ItemName, Price, IsShipping)。我需要在Id列上加入它们,但IsShipping列的值为NULL,我需要将NULL更改为0

现在我有:

SELECT Table1.Id, Table1.Name, Table1.Email, Table2.ItemName, Table2.Price, Table2.IsShipping 
FROM Table1
JOIN Table2
ON Table1.Id = Table2.Id
--here I need to make something like:
WHERE IsShipping IS NULL = 0 -- or etc

3 个答案:

答案 0 :(得分:3)

使用ANSI标准函数coalesce()

SELECT t1.Id, t1.Name, t1.Email, t2.ItemName, t2.Price,
       coalesce(t2.IsShipping , 0) as IsShipping
FROM Table1 t1 JOIN
     Table2 t2
     ON t1.Id = t2.Id;

我还添加了表别名。它们使查询更容易编写和阅读。

答案 1 :(得分:1)

您可以使用coalesce()ISNULLCOALESCE都是ANSI标准

SELECT Table1.Id, Table1.Name, Table1.Email, Table2.ItemName, Table2.Price, 
coalesce(Table2.IsShipping,0) as IsShipping
FROM Table1
JOIN Table2
ON Table1.Id = Table2.Id

答案 2 :(得分:0)

您可以在以下内容中使用ISNULL

  

ISNULL用指定的替换值替换NULL。

SELECT t1.Id, t1.Name, t1.Email, 
       t2.ItemName, t2.Price, 
       ISNULL(t2.IsShipping, 0)  -- Here you pass ISNULL
FROM Table1 t1
JOIN Table2 t2
ON t1.Id = t2.Id