select id,newid() from dizigui where id = 342
union
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by newid()
执行这条语句时
除342这条记录
剩余的3条总是表的前3条记录
只是顺序不同而已
而
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by newid()
单独执行这条语句
总是能随机的抽取3条记录---为什么呢我的目的是想除342这叫记录之外,另外3条记录是随机取出来的
union
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by newid()
执行这条语句时
除342这条记录
剩余的3条总是表的前3条记录
只是顺序不同而已
而
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by newid()
单独执行这条语句
总是能随机的抽取3条记录---为什么呢我的目的是想除342这叫记录之外,另外3条记录是随机取出来的
union
select top 3 id,newid() from dizigui where id != 341 and id != 342 order by checksum(newid())
提示 “'unionselect' 附近有语法错误”
我的是sql 2000
但是提示 “如果语句中包含 UNION 运算符,那么 ORDER BY 子句中的项就必须出现在选择列表中。”
换成这样
select id,checksum(newid()) from dizigui where id = 342
union
select top 3 id,checksum(newid()) from dizigui where id != 341 and id != 342 order by checksum(newid())
查询结果和原来一样
GO 5
/*
开始执行循环
DepartmentID Name GroupName ModifiedDate
------------ -------------------------------------------------- -------------------------------------------------- -----------------------
4 Marketing Sales and Marketing 1998-06-01 00:00:00.000
14 Facilities and Maintenance Executive General and Administration 1998-06-01 00:00:00.000
7 Production Manufacturing 1998-06-01 00:00:00.000
1 Engineering Research and Development 1998-06-01 00:00:00.000
11 Information Services Executive General and Administration 1998-06-01 00:00:00.000
2 Tool Design Research and Development 1998-06-01 00:00:00.000
12 Document Control Quality Assurance 1998-06-01 00:00:00.000
5 Purchasing Inventory Management 1998-06-01 00:00:00.000
13 Quality Assurance Quality Assurance 1998-06-01 00:00:00.000
6 Research and Development Research and Development 1998-06-01 00:00:00.000
(10 行受影响)
DepartmentID Name GroupName ModifiedDate
------------ -------------------------------------------------- -------------------------------------------------- -----------------------
14 Facilities and Maintenance Executive General and Administration 1998-06-01 00:00:00.000
11 Information Services Executive General and Administration 1998-06-01 00:00:00.000
6 Research and Development Research and Development 1998-06-01 00:00:00.000
1 Engineering Research and Development 1998-06-01 00:00:00.000
9 Human Resources Executive General and Administration 1998-06-01 00:00:00.000
12 Document Control Quality Assurance 1998-06-01 00:00:00.000
7 Production Manufacturing 1998-06-01 00:00:00.000
5 Purchasing Inventory Management 1998-06-01 00:00:00.000
15 Shipping and Receiving Inventory Management 1998-06-01 00:00:00.000
2 Tool Design Research and Development 1998-06-01 00:00:00.000
(10 行受影响)
DepartmentID Name GroupName ModifiedDate
------------ -------------------------------------------------- -------------------------------------------------- -----------------------
15 Shipping and Receiving Inventory Management 1998-06-01 00:00:00.000
9 Human Resources Executive General and Administration 1998-06-01 00:00:00.000
13 Quality Assurance Quality Assurance 1998-06-01 00:00:00.000
5 Purchasing Inventory Management 1998-06-01 00:00:00.000
16 Executive Executive General and Administration 1998-06-01 00:00:00.000
11 Information Services Executive General and Administration 1998-06-01 00:00:00.000
2 Tool Design Research and Development 1998-06-01 00:00:00.000
12 Document Control Quality Assurance 1998-06-01 00:00:00.000
1 Engineering Research and Development 1998-06-01 00:00:00.000
6 Research and Development Research and Development 1998-06-01 00:00:00.000
(10 行受影响)
DepartmentID Name GroupName ModifiedDate
------------ -------------------------------------------------- -------------------------------------------------- -----------------------
5 Purchasing Inventory Management 1998-06-01 00:00:00.000
11 Information Services Executive General and Administration 1998-06-01 00:00:00.000
4 Marketing Sales and Marketing 1998-06-01 00:00:00.000
14 Facilities and Maintenance Executive General and Administration 1998-06-01 00:00:00.000
9 Human Resources Executive General and Administration 1998-06-01 00:00:00.000
13 Quality Assurance Quality Assurance 1998-06-01 00:00:00.000
15 Shipping and Receiving Inventory Management 1998-06-01 00:00:00.000
12 Document Control Quality Assurance 1998-06-01 00:00:00.000
7 Production Manufacturing 1998-06-01 00:00:00.000
3 Sales Sales and Marketing 1998-06-01 00:00:00.000
(10 行受影响)
DepartmentID Name GroupName ModifiedDate
------------ -------------------------------------------------- -------------------------------------------------- -----------------------
14 Facilities and Maintenance Executive General and Administration 1998-06-01 00:00:00.000
5 Purchasing Inventory Management 1998-06-01 00:00:00.000
9 Human Resources Executive General and Administration 1998-06-01 00:00:00.000
1 Engineering Research and Development 1998-06-01 00:00:00.000
13 Quality Assurance Quality Assurance 1998-06-01 00:00:00.000
6 Research and Development Research and Development 1998-06-01 00:00:00.000
16 Executive Executive General and Administration 1998-06-01 00:00:00.000
12 Document Control Quality Assurance 1998-06-01 00:00:00.000
2 Tool Design Research and Development 1998-06-01 00:00:00.000
15 Shipping and Receiving Inventory Management 1998-06-01 00:00:00.000
(10 行受影响)
批处理执行已完成 5 次。
*/
union
select PID from (select top 3 PID,NEWID() as a from Product order by checksum(newid()))A
上面已经说了
但是使用union之后就不行了