如果SQL中的值为NULL,如何返回Nothing

时间:2012-06-10 02:21:34

标签: c# asp.net sql web-services

我有以下SQL语句:

SELECT r.NAME AS REGIONNAME, s.NAME AS STADTNAME, f.ADRESSE AS STRASSEADRESSE 
FROM REGION r 
LEFT OUTER JOIN STADT s ON s.REGION_ID = r.ID 
LEFT OUTER JOIN GEBAEUDE f ON s.ID = f.STADT_ID 
ORDER BY r.NAME

如果我在SQL Server 2008 Management Studio中使用此语句,它就像我想要的那样工作。 输出是:

Picture http://i49.tinypic.com/21bodih.png

在客户端,我正在使用Xcode。我的问题是我在TableView中返回REGIONNAMESTADTNAMESTRASSENADRESSE。如果数据库中的STRASSENADRESSE值为NULL,则Xcode将返回一个空行。

如果STRASSENADRESSE值为NULL,是否有可能网络服务仅返回REGIONNAMESTADTNAME?如果是,我该怎么办呢。

提前谢谢

3 个答案:

答案 0 :(得分:3)

您可以使用内置的ISNULL() SQL函数返回空字符串或其他一些默认值。

SELECT 
 r.NAME AS REGIONNAME, 
 s.NAME AS STADTNAME, 
 ISNULL(f.ADRESSE,'') AS STRASSEADRESSE 
FROM 
 REGION r LEFT OUTER JOIN 
 STADT s ON s.REGION_ID = r.ID LEFT OUTER JOIN 
 GEBAEUDE f ON s.ID = f.STADT_ID 
ORDER BY 
 r.NAME

答案 1 :(得分:2)

此查询将返回3列

SELECT r.NAME AS REGIONNAME, s.NAME AS STADTNAME, f.ADRESSE AS STRASSEADRESSE FROM REGION r LEFT OUTER JOIN STADT s ON s.REGION_ID = r.ID LEFT OUTER JOIN GEBAEUDE f ON s.ID = f.STADT_ID ORDER BY r.NAME WHERE f.ADRESSE IS NOT NULL

当STRASSEADRESSE值为null

时,这个只返回两个值

SELECT r.NAME AS REGIONNAME, s.NAME AS STADTNAME, FROM REGION r LEFT OUTER JOIN STADT s ON s.REGION_ID = r.ID LEFT OUTER JOIN GEBAEUDE f ON s.ID = f.STADT_ID ORDER BY r.NAME WHERE f.ADRESSE IS NULL

你必须在两个不同的TableView中接收它们,一个有3列,另一个有2列

答案 2 :(得分:2)

您可以检查'ADDRESS'是否为NULL ..

您可以使用 WHEN IS NULL 功能..

SELECT 
 r.NAME AS REGIONNAME, 
 s.NAME AS STADTNAME, 
 CASE f.ADDRESS
     WHEN f.ADRESSE IS NULL THEN '' 
     ELSE f.ADDRESS
 END AS STRASSEADRESSE 
FROM 
 REGION r LEFT OUTER JOIN 
 STADT s ON s.REGION_ID = r.ID LEFT OUTER JOIN 
 GEBAEUDE f ON s.ID = f.STADT_ID 
ORDER BY 
 r.NAME

检查此链接

http://msdn.microsoft.com/en-us/library/ms181765.aspx