UNION ALL
1 つのテーブル (UNION
コマンドによって結合されるテーブル)を使用してパディングする必要がある場合、SQL Server (T-SQL) の奇妙な動作に直面しています。
表1:
Firstname Lastname Date
--------- -------- ----
Peter Pan 2013-01-21 12:29:55.000
Paul Am 2013-01-22 12:39:45.000
および表 2:
FN LN
--------- --------
Laura Loeb
Lisa Lefteye
UNION ALL
両方のテーブルにa を実行したい。これは、次のように、表 2 を「偽の」3 番目の列で「パディング」することによってのみ達成できます (「データ」列がないため)。
SELECT
Firstname AS FName, Lastname AS LName, Date AS TheDate
FROM Table1
UNION ALL
SELECT
FN AS FName, LN AS LName, NULL AS TheDate
FROM Table2
私の問題は次のとおりです。SQL Server から、DateTime
型にキャストできないというエラー メッセージが表示されます。
Date
Table1の列のデータ型が に設定されていることは 100% 確信していDateTime
ます。NULL 値も許可されています。
次のように、ダミーの日付を設定してみました。
... FN AS FName, LN AS LName, '2013-03-08' AS TheDate ...
次のように、現在の日付を設定しようとしました。
... FN AS FName, LN AS LName, getdate() AS TheDate ...
上記のいずれも機能しません。
ただし、一般的な解決策(「NULL AS Columnname」を使用して欠落している列を埋め込む)が機能することはわかっています...
誰もその問題を解決する方法を知っていますか?
事前にどうもありがとうございました!