我有以下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中返回REGIONNAME
,STADTNAME
和STRASSENADRESSE
。如果数据库中的STRASSENADRESSE
值为NULL
,则Xcode将返回一个空行。
如果STRASSENADRESSE
值为NULL
,是否有可能网络服务仅返回REGIONNAME
和STADTNAME
?如果是,我该怎么办呢。
提前谢谢
答案 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
检查此链接