我想对以下两行中数据进行选择:
aaa 888
bbb 888
ccc 888
ddd 888
xxx 903
bbb 941
rrr 953
kkk 981
当第二列为888时,对第一列只随机选择出一条来,这条SQL怎么写啊。
结果为:
bbb 888(随机生成)
xxx 903
bbb 941
rrr 953
kkk 981
aaa 888
bbb 888
ccc 888
ddd 888
xxx 903
bbb 941
rrr 953
kkk 981
当第二列为888时,对第一列只随机选择出一条来,这条SQL怎么写啊。
结果为:
bbb 888(随机生成)
xxx 903
bbb 941
rrr 953
kkk 981
解决方案 »
- VS 连接oracle9i 时出现ORA-12514:TNS:监听进程不能解析在连接描述中给出的SERVICE_NAME?急啊
- vc++ 存储过程(ORACLE)
- 这个查询该怎么写呀?
- [求助]rman配置过程中的一条指令
- 试问在oracle中 这条语句该如何写
- 在Oracle里,varchar2类型的长度能否自动增加
- LOB需在LINUX安装时设置吗?
- Oracle 8在Windows 2000 professional安装问题
- oracle sql developer如何远程连接数据库,如何设置外网跳转
- 如何在BOM中根据最底层物料找出最顶层的组件
- 表中含有BLOB字段时,回滚段比较大怎么解决???
- 菜鸟问题
这样行不行啊
--当第二列为888时,对第一列只随机选择出一条来
既然是随机,那么我可以私下设定rownum=1,取这条数据可以不?我得出以下2中结果,不知道可行不,电脑oracle没有启动,无法检测
1,按照你的意思是分组,第二列只要是重复的,就只记录其中一条记录即可:
select b.column1,a.column2 from (select column2 from table1 group by column2) a
inner join table1 b
on a.column2=b.column22,不是分组,简单的第二列=888的时候,取其中一条记录
select b.column1,distinct a.column2 from table1 a
---------- ----------
aaa 888
bbb 888
ccc 888
ddd 888
xxx 903
bbb 941已选择6行。SQL> select * from (
2 select c1,c2 from ttt where c2='888' order by dbms_random.value)
3 where rownum=1;C1 C2
---------- ----------
ddd 888SQL> select * from (
2 select c1,c2 from ttt where c2='888' order by dbms_random.value)
3 where rownum=1;C1 C2
---------- ----------
bbb 888SQL> select * from (
2 select c1,c2 from ttt where c2='888' order by dbms_random.value)
3 where rownum=1;C1 C2
---------- ----------
aaa 888
用dbms_random包
------ ----------
aaa 888
bbb 888
ccc 888
xxx 903
bbb 941
rrr 951已选择6行。OPER@tl> select * from test
2 where bbb<>888
3 union all
4 select * from (select * from test where bbb=888
5 order by dbms_random.value)
6 where rownum=1
7 /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
bbb 888OPER@tl> /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
aaa 888OPER@tl> /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
bbb 888OPER@tl> /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
bbb 888OPER@tl> /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
aaa 888OPER@tl> /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
aaa 888
OPER@tl> /AAA BBB
------ ----------
xxx 903
bbb 941
rrr 951
ccc 888OPER@tl>