以下の表からContactDate、SortName、City、ContactType、Summaryを返すSQLクエリが必要です。いずれかの値がnullの場合、「エントリなし」というテキストを返すために必要です。
ContactTable
- ContactID
- ContactDate
- ユーザーID
- 概要
- ContactType
- SortName
UserTable
- ユーザーID
- ファーストネーム
- 苗字
- AddressID
AddressTable
- AddressID
- 街
- 街
- 州
- ジップ
SELECT COALESCE(CAST(CONVERT(VARCHAR(10), ContactTable.ContactDate, 101) AS VARCHAR(10)), 'No Entry') AS ContactDate,
COALESCE(ContactTable.SortName, 'No Entry') AS SortName,
COALESCE(AddressTable.City, 'No Entry') AS City,
COALESCE(ContactTable.ContactType, 'No Entry') AS ContactType
FROM ContactTable
LEFT OUTER JOIN UserTable ON ContactTable.UserID = UserTable.UserID
LEFT OUTER JOIN AddressTable ON UserTable.AddressID = AddressTable.AddressID
上記のCONVERTステートメントのSQLDateTime形式のチャートを次に示します。
塩でその重量の価値がある任意のプラットフォーム上のCOALESCE()。
キャストの問題を処理するようにしてください。
そのような:
--(SQL Server)
SELECT
C.ContactID,
COALESCE(CAST(CONVERT(varchar(10), C.ContactDate, 101) AS varchar(10), 'No Entry') AS ContactDate,
COALESCE(SorName, 'No Entry') AS SortName
などなど。
SELECT
ISNULL(ContactDate, 'No Entry') AS ContactDate
FROM Table
ISNULLの使用は非常に簡単です。
この関数のOracleバージョンはと呼ばれnvlます。同じ使用法- SELECT nvl(col_name, desired_value) FROM foo。
これのより一般的なバージョンはですdecode。これには3つのパラメーターがあり、置換を実行する列値を指定できます(したがって、すべての「Johnny」を「John」などに置き換えることができます)。
' IIF 'の使用はAccessDBソリューションですが、他のDBでも機能する可能性があります。
SELECT IIF(IsNull(Foo), 'No Entry' ,Foo), IIF(IsNull(Bar), 'No Entry' ,Bar) From TableName
関数IIFは、式の評価に応じて2つの値のいずれかを返します。
SQL構文:IIF(式、true-value1、false-value)
列ごとに異なる呼び出しを行うこともできます。個々の呼び出しが多くなりますが、更新する行が多くない場合は高速になる可能性があります。
ContactTable の更新 set ContactDate = 'No Entry' ここで、ContactDate は null です。
列ごとに繰り返します。