すべて、テキストフィールドとエラーによる順序
-
27-09-2019 - |
質問
私は次のような属性を持つ2つのテーブルを持っています date(datetime),headline(varchar),text(text)
ここで、これら2つのテーブルすべてを結合し、DateTimeで並べ替えたいと思います。これを行うとき、私はエラーを取得します:
テキストポインターのみが、テキスト、ntext、または画像列ではない作業テーブルで許可されています。クエリプロセッサは、ワークテーブルにテキスト、nText、または画像列を必要とするクエリプランを作成しました。
前後に試した後、エラーを引き起こしているのはテキスト属性であることがわかりました。しかし、何をすべきか?私は成功せずにVarcharにキャストを試みました。どちらのテーブルも、テキスト属性のテキスト形式を使用します。
また、注文を削除するときはすべて正常に機能します。何をすべきか?
元の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
前もって感謝します
解決
これが一つの方法で、SUPクエリとして組合を実行し、その後結果を注文することです。
SELECT * FROM
(
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')
) a
ORDER BY datetime DESC
他のヒント
インデックス内のいくつかのテキストフィールドにDateTimeフィールドをキャストするのはどうですか? 「DateTime」と「テキスト」をフィールド/エイリアス名として使用することは非常に混乱し、潜在的な問題のソースであることに注意してください。
所属していません StackOverflow