我經常在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。 –