我经常在Teradata的SQL助手使用:Teradata的ROW_NUMBER()OVER(由X分区,Y顺序由Z DESC)= 1
row_number() over(partition by X||Y order by Z desc) = 1
我的同事使用相同的,但与他不”的区别t输入“||”在两个属性之间,他只是输入一个“,”。我用两个测试了一些小数据,并且在输出中找不到任何差异。
我的假设是使用“||”是两种属性(X和Y)的串联。这是真的还是不?
有人现在有什么区别是“||”和“,”在这个命令?
非常感谢提前..
'x || y'基于** single **(连接)值创建组。 'x,y'基于*两个*值的组合创建组 –
除了Gordon的回答:使用逗号的版本更加高效,因为它避免了昂贵的类型转换和连接。 – dnoeth
除了Gordon的答案,当使用串联时,如果任何一个值为null,那么它将评估好像两者都为null,因为用null连接任何字符串将导致null。 –