如果列1中有10种类型(福州、厦门、泉州、等),列2中有3种类型(苹果、梨子、香蕉),我要用怎么样的一句语句从列1,2种随机取去200个数。即取出福州中苹果、梨子、香蕉随机各200个,厦门中苹果、梨子、香蕉随机各200个。备注:随机取出一种的语句我知道是
select * from (select * from staff order by dbms_random.random) where rownum < 200
select * from (select * from staff order by dbms_random.random) where rownum < 200
解决方案 »
- 关于变量赋值问题:要查找的字段为numeric类型,如果有null则先用isnull函数将其赋值为'0'然后再将其赋值给变量,但是就出错了,求指导
- 分区视图 中的 成员表 被BCP命令插入操作后 分区视图失效
- 求一个sql2000的函数!在线等
- 需要找个服务器开发的,有没有感兴趣的
- 求一个数据库合并之后检测重名sql语句。
- 自定义函数
- 如何从表B中某一字段的值更新到另一表A中的同一字段中?
- 存储过程的返回问题,
- 再请教:alter tabletable name add colomn fieldname int defaut 0行不通
- 如何修改已创建的数据库的排序规则, 即修改它的collation_name?
- SQL如何读取DB数据库文件
- 如何查询最近3个月的发生金额
福州 苹果 目标A
福州 苹果 目标B
福州 梨子 目标C
福州 梨子 目标d
福州 梨子 目标e
福州 香蕉 目标f
福州 香蕉 目标g
福州 香蕉 目标h
厦门 香蕉 目标i
厦门 香蕉 目标j
厦门 苹果 目标k
泉州 香蕉 目标l
这个表结构
select * from (select * from 表1 where 列1=福州 and 列2=苹果 order by dbms_random.random)
where rownum < 200 select * from (select * from 表1 where 列1=福州 and 列2=梨子 order by dbms_random.random)
where rownum < 200 select * from (select * from 表1 where 列1=福州 and 列2=香蕉 order by dbms_random.random)
where rownum < 200 select * from (select * from 表1 where 列1=厦门 and 列2=苹果 order by dbms_random.random)
where rownum < 200 select * from (select * from 表1 where 列1=厦门 and 列2=梨子 order by dbms_random.random)
where rownum < 200 select * from (select * from 表1 where 列1=厦门 and 列2=香蕉 order by dbms_random.random)
where rownum < 200 我想用一条语句就取出所有这些的各随机200个目标行
as
(select rowid =row_number() over (partition by col1 order by col1,newid()),*
from ta)
select * from t where rowid <= 200
CREATE TABLE dbo.P
(
ID INT IDENTITY(1,1)
,PName NVARCHAR(10)
)
GO
INSERT INTO dbo.P
SELECT N'福州' UNION ALL
SELECT N'厦门' UNION ALL
SELECT N'泉州'
GO
CREATE TABLE dbo.type
(
ID INT IDENTITY(1,1)
,TName NVARCHAR(10)
)
Go
INSERT INTO dbo.type
SELECT N'苹果' UNION ALL
SELECT N'梨子' UNION ALL
SELECT N'香蕉'
GO
SELECT top 200 TName
,(SELECT top 1 PName
FROM dbo.P
ORDER BY NEWID()
)
FROM dbo.type
ORDER BY NEWID()
我在sql学习社区(www.sqlclub.cn)也已经回答你的问题