读书人

sql语句简单有关问题

发布时间: 2011-12-19 23:23:36 作者: rapoo

sql语句简单问题
sql语句如下:
SELECT TOP 5 * FROM A INNER JOIN B ON A.id = B.bid and CancelS=0 and RecLoc= ' " + RBRecLoc.SelectedItem.Value + " ' ORDER BY A.ID DESC, A.name ,A.time "
现要求每5条记录放到一个dt中,
sql语句改为:
count=5*n(n是变化的)
SELECT TOP 5 * FROM A INNER JOIN B ON A.id = B.bid and CancelS=0 and RecLoc= ' " + txt1.text+ " '
and a.id not in (select top "& count & " id from A INNER JOIN B ON A.id = B.bid and CancelS=0 and RecLoc= ' " + txt1.text+ " ' ORDER BY A.ID DESC, A.name ,A.time)
ORDER BY A.ID DESC, A.name ,A.time "
测试时,共有60条记录,发现有一条记录出现两次,而一条记录没有出现.
请问,哪个地方不对?


[解决办法]
up
[解决办法]
可否使用纯sql语句,哪样便于发现问题...
[解决办法]
up
[解决办法]
你试下这样:
select top 5 * from artx
union
select top 5 * from artx
顺便解释一下:
--------------------------------------
UNION 运算符
将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同。
使用 UNION 组合两个查询的结果集的两个基本规则是:
所有查询中的列数和列的顺序必须相同。
数据类型必须兼容。

UNION

指定组合多个结果集并将其作为单个结果集返回。

ALL(注意下面这句话)

在结果中包含所有的行,包括重复行。如果没有指定,则删除重复行。


[解决办法]
帮顶

读书人网 >VB Dotnet

热点推荐