2

これは簡単に解決できる問題だと思いますが、答えを見つけようと夢中になってグーグルで検索しましたが、答えが得られません。

null 値を含む列に基づいて結果を並べ替えたいと考えています。SQL Server は、それは悪い考えだと考えているようです。ISNULLLIKE、およびこれを機能させるために他のいくつかのさまざまな方法を使用してそれらを制限しようとしましたが、それは起こっていません。

SELECT c1
FROM t1
WHERE c1 IS NOT NULL
ORDER BY c1 DESC

SQL Server で次のエラーが表示されます。 The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.

私が言ったように、私はこの単純な問題に対する答えを見つけようと狂ったようにグーグルで検索してきましたが、それは起こっていません.

4

3 に答える 3

3

c1はテキスト、ntext、または画像です

エラーがあなたが彼らによって注文することができないと言うように

text / ntextをvarchar(max)にキャストしてみてください。

SELECT c1
FROM t1
WHERE c1 IS NOT NULL
ORDER BY convert(varchar(max),c1) DESC
于 2012-06-07T17:35:15.900 に答える
1
ORDER BY cast(c1 as varchar(max)) DESC

c1のタイプを に切り替えることを検討してvarchar(max)ください。 text廃止されたデータ型です。

于 2012-06-07T17:37:57.177 に答える
0

varcharしかソートできないというものを見つけました。このコードを試してください。

SELECT c1 FROM t1 WHERE c1 IS NOT NULL ORDER BY cast(c1 as varchar(MAX))

src:http://twogeeks.mindchronicles.com/?p = 7

于 2012-06-07T17:40:22.940 に答える