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

このステートメントをSQLServer2008 Management Studioで使用すると、希望どおりに機能します。出力は次のとおりです。

写真

クライアント側では、Xcodeを使用しています。私の問題は、TableViewでとを返すREGIONNAMEことSTADTNAMEですSTRASSENADRESSESTRASSENADRESSEデータベースの値がである場合NULL、Xcodeは空の行を返します。

STRASSENADRESSE値が、の場合、NULLWebサービスはとのみを返す可能性はREGIONNAMEありSTADTNAMEますか?はいの場合、どうすればそれができますか。

事前にThx

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値がである場合、これは2つの値のみを返します。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

1つは3列、もう1つは2列の2つの異なるTableViewで受信する必要があります。

于 2012-06-10T02:54:58.897 に答える
2

'ADRESSE'がNULLかどうかを確認できます。

WHEN ansISNULL関数を使用できます

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 に答える