回答

收藏

SQL查询:按ntext字段分组

技术问答 技术问答 238 人阅读 | 0 人回复 | 2023-09-12

我有以下查询,基本上检索出销量最高的5本书:6 ?3 ?2 e* m9 N4 j* J. C
                select top 5 count(id_book_orddetails) 'books_sold',bk.*    from orderdetails_orddetails ord inner join books_book bk    on ord.id_book_orddetails = bk.id_book    group by id_book,name_book,author_book,desc_book,id_ctg_book,qty_book,image_book,isdeleted     order by 'books_sold' desc问题是我收到了这个错误:. N! U  v; e% Y- g% o* a3 ~4 C
除非使用IS NULL或LIKE运算符,否则不能正确text,ntext和image比较或排序数据类型。" z( A" P* N5 l8 \
在books_book表中,字段desc_book的类型为ntext,我确定问题出在那里。  U% j' r; J8 T" R
这是因为会desc_bookto更改为之前ntext,它是类型nvarchar,并且运行良好。- E% n& x# M' n. J$ f
更改此字段的数据类型的原因是PHP在网站中,图书描述以某种方式显示(不同的)sp)说明被截断为200左右-我把255个字符改成了ntextand’解决了我的问题(即desc_book整个问题终于显示出来了。) y9 u" B+ L) j
所以基本上这些都是我的问题:* n$ X1 I  Q4 |+ z/ G0 M8 j& c
[ol]为什么desc_book(nvarchar)字段在PHP显示在页面被截断?6 I1 B$ P. o5 ^: G3 C* ~% Q
如何修复SQL查询以适应按ntext字段分组?[/ol]仅出于记录目的(我认为这不太相关),我使用的是 MS SQL Server 2005; g' s; B, s1 d  K, M9 E
[更新]
* h' W; I! t) [7 R! y这是我更新的(完全正常运行)句子:" M% p9 }3 \, q& a* B& Y  ?- S
SELECT bk.*,bc.books_soldFROM books_book bkINNER JOIN  SELECT bk2.id_book,COUNT(*) books_sold    FROM books_book bk2     INNER JOIN orderdetails_orddetails ord     ON (bk2.id_book = ord.id_book_orddetails)    GROUP BY bk2.id_book) bcON (bk.id_book = bc.id_book)ORDER BY books_sold desc;               
6 i4 Y, j) {& f- ?8 q; w  \$ l; _  J    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则