类似于“按级别选择双级连接级别< 10”用于Sybase?

时间:2013-05-18 13:10:48

标签: sql oracle date sybase

通过按级别选择双级连接级别< 10 在Oracle中我可以生成整数的子查询并将其转换为另一个序列。

Sybase可以实现吗?

PS 我想查找表中没有数据的日期(缺少天数)。在Oracle中,我这样做:

select to_date('2012-01-01', 'yyyy-mm-dd')+level-1 from dual
    connect by level < to_date('2013-01-01', 'yyyy-mm-dd') - to_date('2012-01-01', 'yyyy-mm-dd')
  MINUS
select distinct date from TBL
    where date between to_date('2012-01-01', 'yyyy-mm-dd')
                   and to_date('2013-01-01', 'yyyy-mm-dd')

在Sybase模拟中 MINUS 是:

select whatever from table1 T1
  where not exists
  ( select 1 from table2 where id = T1.id )

但我不知道模拟按级别连接 ......

UPDATE 有没有办法在Sybase中创建临时表而不实际将数据存储到磁盘?

2 个答案:

答案 0 :(得分:4)

您使用的Oracle语法是用作行生成器的分层查询。 Sybase有sa_rowgenerator系统过程可用于在起始值和结束值之间生成一组整数。

以下将生成1到255之间的整数列。

SELECT row_num FROM sa_rowgenerator( 1, 255 );

答案 1 :(得分:1)

sa_rowgenerator系统过程需要DBA权限。必须为没有DBA权限的用户授予运行存储过程的EXECUTE权限。