在sql中,哪个sql函数可以作为informatica的first()的替代函数?

cqoc49vn  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(401)

嗨,我正在尝试将informatica aggregator转换为sql query,我一直在寻找sql中informatica的first()函数的替代方法

Select emp.*,
       first_value(ename)over (order by empid) ename1,
       first_value(ehobby)over (order by empid) ehobby1
From emp;

此查询为所有记录提供第一行,但我想按empid对其进行分组。有人能建议一下吗?

vulvrdjw

vulvrdjw1#

此查询为所有记录提供第一行,但我想按empid对其进行分组。
我希望 empid 成为 distinct 在一个叫做 emp . 但是如果您有多个行并且想要第一个值,那么您需要一个排序列。让我假设你有一个。在这种情况下:

select emp.*,
       first_value(ename) over (partition by empid order by <ordering col>) as ename1,
       first_value(ehobby) over (partition by empid order by <ordering col>) as ehobby1
from emp;
vshtjzan

vshtjzan2#

Select empid,
       (select top 1 ISNULL(ename,'') from emp where ename=obj.ename order by empid) as ename1
       (select top 1 ISNULL(ehobby,'') from emp where ehobby=obj.ehobby order by empid) as ehobby1 
From emp as obj
group by obj.empid,obj.ename1,obj.ehobby1

我已经尝试了上面的查询请检查这可能是有帮助的和组由你必须选择一个列名道歉,如果有什么错误,我是新的在stackoverflow。

相关问题