Benutzer mit den meisten Antworten
T-SQL maximum across multiple columns

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
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 );
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 23. August 2012 14:11
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 28. August 2012 07:46
-
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 ermittelnHTH!
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP
www.insidesql.org/blogs/cmu- Als Antwort vorgeschlagen Stefan HoffmannModerator Freitag, 24. August 2012 10:02
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 28. August 2012 07:46
Alle 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 );
- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 23. August 2012 14:11
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 28. August 2012 07:46
-
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 ermittelnHTH!
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP
www.insidesql.org/blogs/cmu- Als Antwort vorgeschlagen Stefan HoffmannModerator Freitag, 24. August 2012 10:02
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 28. August 2012 07:46
-
Hallo LenaViv_1984,
Ich gehe davon aus, dass die Antworten Dir weitergeholfen haben.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.