Willkommen bei Entwickler-Forum.
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 14
  1. #1
    Stammgast
    Registriert seit
    31.10.2007
    Beiträge
    176

    Standard Wie finde ich den zweit kleinsten Wert in einer Tabellenspalte?

    Hallo zusammen,

    kann mir jemand sagen wie ich den zweit kleinsten Wert aus einer Tabellenspalte ausgeben kann?

    So mache ich ich es wenn ich den kleinsten finden will:

    PHP-Code:
     select min(price_detail_priceminprice from dbo_price_detail where price_artikel_id '$price_artikel_id' 
    Wenn in der Spalte also die Werte

    22,50
    23,80
    19,10
    15,30

    stehen, möchte ich die 19,10 haben, also den zweit kleinsten Wert.

    Danke!

  2. #2
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Step 1: Sortieren
    Step 2: den n-ten Wert verwenden.

    Das geht bei mysql sicher mit "limit 2" dann andersrum sortieren oder sowas.

    Ich würde wahrscheinlich bei mysql die Fähigkeit nutzen, Variablen im SQL verwenden zu können und mir eine virtuelle Spalte mit fortlaufende Nummer herzustellen. Kriterium ist dann einfach nur noch "where laufendeNummer=2"
    Gruß, defo

  3. #3
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    4.825

    Standard

    Code SQL:
     SELECT price_detail_price FROM dbo_price_detail WHERE price_artikel_id = '$price_artikel_id' ORDER BY price_detail_price ASC LIMIT 1,1

    Disclaimer : Nicht getestet nur der Doku entnommen

    Edit : DESC in ASC geändert
    Geändert von Ralf Jansen (26.10.2017 um 14:56 Uhr)

  4. #4
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Ach, das wusste ich gar nicht mit dem Offset.
    So einfach!
    Gruß, defo

  5. #5
    Stammgast
    Registriert seit
    18.07.2008
    Beiträge
    3.043

    Standard

    Cool das muss ich auch mal testen ob unsere Oracle das kann

  6. #6
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.230

    Standard

    Oracle kennt kein Limit

    Code:
    select * from ( 
      select a.*, ROWNUM rnum from (
        DEIN_SQL_MIT_ORDER  
        )
      a where ROWNUM < 3 
      ) 
    where rnum  > 1;
    Geändert von Christian Marquardt (27.10.2017 um 07:42 Uhr)
    Christian

  7. #7
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Zitat Zitat von Christian Marquardt Beitrag anzeigen
    Oracle kennt kein Limit

    Code:
    select * from ( 
      select a.*, ROWNUM rnum from (
        DEIN_SQL_MIT_ORDER  
        )
      a where ROWNUM < 3 
      ) 
    where rnum  > 1;
    Ja, sowas in der Art hatte ich mit meinem ersten Post im Kopf, nur halt mit Limit (ohne Offset). Offenbar kenne ich mySQL nicht gut genug für solche Beiträge.
    Gruß, defo

  8. #8
    Forenheld
    Registriert seit
    26.02.2003
    Beiträge
    16.230

    Standard

    Da könnte sich Oracle mal was abgucken......mit dem Limit
    Christian

  9. #9
    Stammgast
    Registriert seit
    26.02.2003
    Beiträge
    4.825

    Standard

    Offenbar kenne ich mySQL nicht gut genug für solche Beiträge.

    Ich habe MySql noch nie wirklich benutzt. Ich habe aber halt genug allgemeine Erfahrung der Doku die richtige Frage zu stellen um schnell das passende zu finden

  10. #10
    Stammgast
    Registriert seit
    24.10.2011
    Beiträge
    1.283

    Standard

    Zitat Zitat von Christian Marquardt Beitrag anzeigen
    Da könnte sich Oracle mal was abgucken......mit dem Limit
    Haben sie ja, aber natürlich anders (ab 12c)
    Code:
    [ OFFSET offset { ROW | ROWS } ]
    [ FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT } ]
        { ROW | ROWS } { ONLY | WITH TIES } ]
    @ralf
    Doku lesen bwz. bei Bedarf benutzen ist natürlich grundsätzlich der beste Tipp/ best practise.
    Aber wir wären ja in vielen Foren fast "arbeitslos", wenn jeder das einfach machen würde (und die Doku qualitativ geeignet ist)
    Vielleicht ist auch etwas Arroganz dabei, wenn man meint ein (bekanntes) Verfahren von Oracle sei StateOfTheArt.
    Geändert von defo (27.10.2017 um 14:27 Uhr)
    Gruß, defo

 

 
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •