--drop table #provider
create table #provider(id_prov int not null primary key,
name varchar(10) null)
insert #provider(id_prov, name) values(1,'provider1')
--drop table #provprefix
create table #provprefix(id_prov int not null,ipaddress
varchar(15) null)
insert #provprefix(id_prov,ipaddress) values(1,'1.1.1.1')
insert #provprefix(id_prov,ipaddress) values(1,'2.2.2.2')
insert #provprefix(id_prov,ipaddress) values(1,'3.3.3.3')
insert #provprefix(id_prov,ipaddress) values(1,'4.4.4.4')
select *, (select top 1 ipaddress from #provprefix p where
p.id_prov=#provider.id_prov order by NEWID()) as ip
from #provider where id_prov=1
The idea is that every time I run the select statement, I
get a different value from the second table. Round-Robin
would be ideal but random is fine.
How would you achieve the same effect (ideally in a
round-robin fashion) in ASE? If I cannot use neither the TOP
nor the Order By words in a sub-query, how can I possibly
solve this?
Would something like this work?
1> select top 1 ipaddress as ip, pv.id_prov, pv.name from #provprefix p, #provider pv where pv.id_prov=1 and pv.id_prov = p.id_prov order by newid()
2> go
ip id_prov name
--------------- ----------- ----------
1.1.1.1 1 provider1
(1 row affected)
1> select top 1 ipaddress as ip, pv.id_prov, pv.name from #provprefix p, #provider pv where pv.id_prov=1 and pv.id_prov = p.id_prov order by newid()
2> go
ip id_prov name
--------------- ----------- ----------
2.2.2.2 1 provider1
(1 row affected)
1> select top 1 ipaddress as ip, pv.id_prov, pv.name from #provprefix p, #provider pv where pv.id_prov=1 and pv.id_prov = p.id_prov order by newid()
2> go
ip id_prov name
--------------- ----------- ----------
4.4.4.4 1 provider1
(1 row affected)
1> select top 1 ipaddress as ip, pv.id_prov, pv.name from #provprefix p, #provider pv where pv.id_prov=1 and pv.id_prov = p.id_prov order by newid()
2> go
ip id_prov name
--------------- ----------- ----------
3.3.3.3 1 provider1
Regards,
Neal
I think there is an outstanding feature request for the CUBE:
451306 - request to support group by rollup/ group by cube
I found one feature request that covers at least one of Microsoft's ranking functions:
460975 - new request is like this ROW_NUMBER() function
(I updated it to include all of Microsoft's ranking functions (RANK, NTILE, DENSE_RANK, ROW_NUMBER)).
Regards,
Neal