Sybase Query:ASE中LIST()的替代方案

时间:2016-07-08 14:09:08

标签: sql subquery sybase

请您帮我在Sybase中找到以下查询。

我想要一个逗号分隔的行列表。有一个LIST()聚合函数但我无法使用它,因为我使用的是Adaptive Server Enterprise。

Sybase中是否存在任何替代查询以获取LIST()?

供您参考: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1604/doc/html/jcu1290709667623.html

谢谢, 萨姆拉特萨卡

2 个答案:

答案 0 :(得分:2)

在ASE中基本上有两个选项:(i)使用基于循环的算法,如游标(ii)使用ASE UPDATE语句的一个鲜为人知的特性,该特性可以将后续行中的值累积到变量中。

对于后者,基本上这个想法不是更新任何列,而是扫描这样的行:

update Sales
set @cnt = @cnt + 1,
    @sum = @sum + Amount

有关详细信息,请参阅我的书www.sypron.nl/ttr。

答案 1 :(得分:0)

我用以下技术解决了这个问题,

我创建了一个#temp表并循环遍历游标并在#temp表中插入了逗号分隔值。

现在使用#temp table

进行主选择查询连接
相关问题