次のような属性を持つ2つのテーブルがありますdate(datetime),headline(varchar),text(text)
ここで、これら 2 つのテーブルをすべて UNION し、日時で並べ替えたいと思います。これを行うと、エラーが発生します:
作業テーブルではテキスト ポインターのみが許可され、text、ntext、または image 列は許可されません。クエリ プロセッサは、作業テーブルに text、ntext、または image 列を必要とするクエリ プランを生成しました。
行ったり来たりした後、エラーの原因はテキスト属性であることがわかりました。しかし、何をすべきか?VARCHAR にキャストしようとしましたが、成功しませんでした。どちらのテーブルも、テキスト属性でテキスト形式を使用しています。
また、ORDER BY を削除すると、すべて正常に動作します。何をすべきか?
元の SQL クエリを以下に示しますが、上記の単純化したものに返信するだけでかまいません。
SELECT id, datetime, author, headline, intro, text, type, toppriority,
secondpriority, comments, companyid, '1' source
FROM Table1
UNION ALL
SELECT AutoID AS id, Dato AS datetime,
ID COLLATE SQL_Latin1_General_CP1_CI_AS AS author, NULL AS headline,
NULL AS intro, Notat COLLATE SQL_Latin1_General_CP1_CI_AS AS text,
CAST(NotatTypeID AS VARCHAR) AS type,
NULL AS toppriority, NULL AS secondpriority, NULL AS comments,
Selskabsnummer AS companyid, '2' source
FROM Table2
WHERE (NotatTypeID = '5') OR (NotatTypeID = '6')
ORDER BY datetime DESC
前もって感謝します