其实可以换个想法,用jion(原理:syscolumns肯定大于10行, detail表只要有记录,得出的结果必定多于10行)Select a.* From (Select detail.*, 0 as aaa From detail) a, (Select top 10 0 as aaa from syscolumns) b where a.aaa *= b.aaa
应该是:(Select top 10 0 as aaa from master.dbo.syscolumns) b, 否则不一定多于10行
Access 好像不支持在where部分用 *= 表示的外连接 我用 SELECT * FROM [Select *, 0 as aaa From detail]. AS a right join [Select top 10 0 as aaa from syscolumns]. AS b on a.aaa=b.aaa; 虽然不提示语法错误,但是在detail表中不存在记录的时候返回的结果集为空; 其次如果detail表中有两条符合条件的记录,则上述查询返回的结果集中会将detail表中的这两条记录重复5条,而不是在值不存在的时候返回null请问高手,这两个问题有办法解决吗?
(Select detail.*, 0 as aaa From detail) a,
(Select top 10 0 as aaa from syscolumns) b
where a.aaa *= b.aaa
access和sqlserver只能用top,否则就得遍历了--------------------------------------- 欢迎访问 http://www.coderpub.com 技术论坛
我用
SELECT *
FROM [Select *, 0 as aaa From detail]. AS a right join [Select top 10 0 as aaa from syscolumns]. AS b
on a.aaa=b.aaa;
虽然不提示语法错误,但是在detail表中不存在记录的时候返回的结果集为空;
其次如果detail表中有两条符合条件的记录,则上述查询返回的结果集中会将detail表中的这两条记录重复5条,而不是在值不存在的时候返回null请问高手,这两个问题有办法解决吗?