2

我有以下 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 中使用此语句,它会像我想要的那样工作。输出是:

图片

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

如果STRASSENADRESSEValue 是NULL,Web 服务是否可能只返回REGIONNAMEand STADTNAME?如果是的话,我该怎么做。

提前谢谢

4

3 回答 3

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
于 2012-06-10T02:33:18.937 回答
3

此查询将返回 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 列

于 2012-06-10T02:54:58.897 回答
2

您可以检查“地址”是否为 NULL。

您可以使用WHEN ans 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

于 2012-06-10T02:59:24.607 回答