使用union并排序时出现问题!请各位帮帮忙。
SQL="select * from ( SELECT TOP 11 [ID],COLUMNID,COLUMNNAME,TITLE,TCOLOR,AddDate,IsImg,IsTop FROM [NB_Content] WHERE ISDEL=0 AND ISPASS=1 And IsImg=0 And IsDis=0"
sql=sql&" union all "
sql=sql&" SELECT TOP 11 [ID],COLUMNID,COLUMNNAME,TITLE,TCOLOR,AddDate,IsImg,IsTop FROM [NB_DownContent] WHERE ISDEL=0 AND ISPASS=1 And IsImg=0 And IsDis=0 ) order by AddDate desc,id Desc"
提示Order附近有错误,将order语句去掉之后,提示(附近有错误!怎么回事呀?
问题点数:20、回复次数:4Top
1 楼zjcxc(邹建)回复于 2005-06-04 08:39:01 得分 20
--要为子查询指定别名
SQL="select * from ( SELECT TOP 11 [ID],COLUMNID,COLUMNNAME,TITLE,TCOLOR,AddDate,IsImg,IsTop FROM [NB_Content] WHERE ISDEL=0 AND ISPASS=1 And IsImg=0 And IsDis=0"
sql=sql&" union all "
sql=sql&" SELECT TOP 11 [ID],COLUMNID,COLUMNNAME,TITLE,TCOLOR,AddDate,IsImg,IsTop FROM [NB_DownContent] WHERE ISDEL=0 AND ISPASS=1 And IsImg=0 And IsDis=0 )a order by AddDate desc,id Desc"
Top
2 楼cantops(翡翠梦境里的熊猫人)回复于 2005-06-04 08:43:05 得分 0
恩!谢谢二楼的兄弟,错误提示没有了。 数据也能读取了。 但是排序似乎没有生效。指定排序方法是desc可程序执行还是asc为什么呀?Top
3 楼cantops(翡翠梦境里的熊猫人)回复于 2005-06-04 09:05:53 得分 0
谢谢二楼的了。原来是top写错地方了。 呵呵!Top
4 楼qzxyd(只会种菜)回复于 2005-06-04 09:11:50 得分 0
子查询没指定别名。如上则可:
SQL="select * from ( SELECT TOP 11 [ID],COLUMNID,COLUMNNAME,TITLE,TCOLOR,AddDate,IsImg,IsTop FROM [NB_Content] WHERE ISDEL=0 AND ISPASS=1 And IsImg=0 And IsDis=0"
sql=sql&" union all "
sql=sql&" SELECT TOP 11 [ID],COLUMNID,COLUMNNAME,TITLE,TCOLOR,AddDate,IsImg,IsTop FROM [NB_DownContent] WHERE ISDEL=0 AND ISPASS=1 And IsImg=0 And IsDis=0 ) as a order by AddDate desc,id Desc"
你的addDate是时间类型的吧。用desc则最近的时间在前就对了。
Top




