none
T-SQL maximum across multiple columns RRS feed

  • Frage

  • Hi,

    ich habe 3 columns mit numerischen Daten (column A, column B, column C). Wenn ich gerne pro Row/pro Zeile das Maximum der 3 Werte von den 3 Columns (s.u.) gerne hätte - wie stelle ich das am besten an in MS SQL Server? Weil die "normale" Max Funktion berechnet das Maximum von einer ganzen Column...

                   Column A         Column B           Column C

    Zeile 1     Wert A             Wert B               Wert C      => Ziel: Maximum (Wert A, Wert B, Wert C) pro Zeile

    Zeile 2

    etc

    Vielen Dank im Voraus!

    VG Lena

    Donnerstag, 23. August 2012 12:15

Antworten

  • Endweder mit einem entsprechend geschachtelten CASE oder mit genau diese Funktion über ein UNION:

    USE AdventureWorks2008R2;
    
    SELECT TOP 25
            P1.BusinessEntityID ,
            P1.NameStyle ,
            P1.EmailPromotion ,
            CA.i
    FROM    Person.Person P1
            CROSS APPLY ( SELECT    MAX(i)
                          FROM      ( SELECT    P2.BusinessEntityID
                                      FROM      Person.Person P2
                                      WHERE     P2.BusinessEntityID = P1.BusinessEntityID
                                      UNION ALL
                                      SELECT    P2.NameStyle
                                      FROM      Person.Person P2
                                      WHERE     P2.BusinessEntityID = P1.BusinessEntityID
                                      UNION ALL
                                      SELECT    P2.EmailPromotion
                                      FROM      Person.Person P2
                                      WHERE     P2.BusinessEntityID = P1.BusinessEntityID
                                    ) Q ( i )
                        ) CA ( i );   

    Donnerstag, 23. August 2012 12:37
    Moderator
  • Hallo Lena,
    drei interessante Ansätze habe ich hier zusammengetragen:
    http://www.insidesql.org/blogs/cmu/sql_server/maximum-von-drei-daten-ermitteln
    Maximum von drei Daten ermitteln

    HTH!

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Freitag, 24. August 2012 06:01

Alle Antworten