有一张表,结构如下:
序号 f1 f2
1 1 a
2 1 b
3 1 c
4 2 a
5 2 b
6 3 a
7 3 b
8 3 c
9 3 d序号是主键 ,要求按f1 分组,且f1相同的行显示出来是随机排序的,能不能用一条sql 语句完成呢?
知道的讲讲啊,谢谢了!
序号 f1 f2
1 1 a
2 1 b
3 1 c
4 2 a
5 2 b
6 3 a
7 3 b
8 3 c
9 3 d序号是主键 ,要求按f1 分组,且f1相同的行显示出来是随机排序的,能不能用一条sql 语句完成呢?
知道的讲讲啊,谢谢了!
解决方案 »
- 求助啊~~~~
- A表和B表是两个完全相同的表,如何能找出A表有而B表没有的数据?
- 请教计算一组资料出现次数。分不够将来再补上了,抱歉!
- 求助,很急的问题
- 查出的1列字段,连成字符并用,号隔开 ?
- 又碰SQL难题 高手进, 关于多加一列
- 关于informix数据导入到sql server2008的问题
- sqlserver 2005本地连接很正常,但是一到局域网连接访问sql server就奇慢无比,访问其他文件速度正常,那位高手指点一下。
- 数据搜索与结果操作问题,在线等待
- SQL SERVER中的识别字段的当前值存放在哪?当我删空记录时,它并未重新从1开始,而是从上次的地方继续。
- 同表多个用户查询
- sql2005数据加密解密
INSERT @TB
SELECT 1, 1, 'a' UNION ALL
SELECT 2, 1, 'b' UNION ALL
SELECT 3, 1, 'c' UNION ALL
SELECT 4, 2, 'a' UNION ALL
SELECT 5, 2, 'b' UNION ALL
SELECT 6, 3, 'a' UNION ALL
SELECT 7, 3, 'b' UNION ALL
SELECT 8, 3, 'c' UNION ALL
SELECT 9, 3, 'd'SELECT *
FROM @TB
ORDER BY [f1],NEWID()
/*
序号 f1 f2
----------- ----------- ----
3 1 c
1 1 a
2 1 b
4 2 a
5 2 b
8 3 c
9 3 d
7 3 b
6 3 a
*/
---------------------------------
-- Author: htl258(Tony)
-- Date : 2009-07-09 11:31:49
---------------------------------
--> 生成测试数据表:tbIf not object_id('[tb]') is null
Drop table [tb]
Go
Create table [tb]([序号] int,[f1] int,[f2] nvarchar(1))
Insert tb
Select 1,1,'a' union all
Select 2,1,'b' union all
Select 3,1,'c' union all
Select 4,2,'a' union all
Select 5,2,'b' union all
Select 6,3,'a' union all
Select 7,3,'b' union all
Select 8,3,'c' union all
Select 9,3,'d'
Go
--Select * from tb-->SQL查询如下:
select *
from tb
order by [f1],newid()
/*
序号 f1 f2
----------- ----------- ----
2 1 b
3 1 c
1 1 a
4 2 a
5 2 b
8 3 c
9 3 d
7 3 b
6 3 a(9 行受影响)
*/
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(序号 int,f1 int ,f2 varchar )
go
insert into tb
select
1 , 1 , 'a' union all select
2 , 1 , 'b' union all select
3 , 1 , 'c' union all select
4 , 2 , 'a' union all select
5 , 2 , 'b' union all select
6 , 3 , 'a' union all select
7 , 3 , 'b' union all select
8 , 3 , 'c' union all select
9 , 3 , 'd'
go
select * from tb order by [f1],NEWID()
/*--
3 1 c
1 1 a
2 1 b
4 2 a
5 2 b
8 3 c
6 3 a
7 3 b
9 3 d----------------*/
--这里先按F1排序了 然后在此基础上 进行随机排序 指的是另外2列的随机