SQL-lause haussa

apuja? ei kotitehtäv

Olkoon tietokanta seuraavanlainen (CSV)

HenkilöID, AutoID
1,10
2,12
3,3
4,12
5,3
6,2

Millä yksittäisellä SQL-lauseella voi valita rivin, jossa AutoID=12 esiintyy a) ensimmäisen b) viimeisen kerran?

3

367

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • sdfsfsfd

      Onko tämä siis joku csv-tietokanta vai joku "oikea" tietokanta jonka data nyt on vaan esitetty CSV-muodossa?

      Relaatiotietokannassa riveillä ei ole varsinaisesti järjestystä. Voit järjestää ne haluamallasi tavalla, tai ottaa ne missa muodossa ne sattuvat tulemaankin.

      Toteutustapa riippunee tietokannasta. Ensimmäisen ja viimeisen haku onnistuu samalla tavalla kunhan sorttaat sen päinvastaisesti.

      Tämäntapaisen pitäisi toimia mikkisoftan mssql:ssä - järjestää henkilöID:n perusteella kun järkevämpääkään ei näytä olevan käsillä:
      SELECT TOP 1 *
      FROM taulu
      WHERE AutoID=12
      ORDER BY HenkilöID ASC

      ("viimeistä" varten ORDER BY HenkilöID DESC)

      huom: tuo "TOP 1" on tietokantakohtaista. Jossain mysql se taitaa olla limit tms.

      • kiitän

        mitä en koskaan ole oppinut sisäistämään täysin, C , java, konekielet sun muu on selvää pässinlihaa mutta SQL vaan menee monilta osin yli, etenkin kaikki inner/outer joinit sun muut. Joten kiitos vastauksesta!


    • Miten ensimmäisen tai viimeisen? Eihän tuossa ole järjestystä määritelty.

      Vastauksia on monenlaisia ja kielestä riippuen. Ensimmäisen valinta on triviaalia (limit, top, jne avainsanoja), viimeinen vaatii rivinumeron lisäämisen ja niistä viimeisen hakemisen. Minä varmaan kirjoittaisin ensin haun jossa rivinumero mukana, pistäisin sen toisen haun lähdeaineistoksi ja järjestäisin rivinumeron mukaan laskevaksi. Sen jälkeen triviaali.

      Mutta vieläkään en ymmärrä, miten sinä sen järjestyksen päättelet. :)

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. En usko et meistä tulee jotain

      Se ei kuitenkaan estä toivomasta et tulisi. Toivon et voitas suudella ja se sais asioita loksahtamaan paikoilleen. Jutel
      Ikävä
      10
      2710
    2. Kuvaile itseäsi

      Kaivatullesi, niin että hän sinut tunnistaa.
      Ikävä
      94
      2001
    3. Eini paljastaa nuorekkuutensa salaisuuden - Tämä nousee framille: "Se on pakko, että jaksaa!"

      Discokuningatar Eini on täyttänyt upeat 64 vuotta. Lavoilla ja keikoilla nähdään entistä vapautuneempi artisti, joka ei
      Suomalaiset julkkikset
      40
      1518
    4. Huomenta keskipäivää

      Kivaa päivää mukaville ja söpösille. 🐺🫅❤️☕☀️
      Ikävä
      260
      1398
    5. Yli puolella maahanmuuttajalapsista ei ole tietoja ja taitoja, joilla selviää yhteiskunnassa

      Miksi Suomeen otetaan väkeä jolla on älyvajetta? https://www.hs.fi/politiikka/art-2000010730220.html
      Maailman menoa
      274
      1059
    6. Oletko koskaan katunut kun

      elämäsi tilaisuus jäi käyttämättä? 💔
      Ikävä
      69
      969
    7. Olen J-mies

      Jos kerrot sukunimeni alkukirjaimen, ja asuinpaikkakuntani. Lupaan ottaa yhteyttä sinuun.
      Ikävä
      47
      891
    8. Sinusta näkee että

      Kaipaat paljon.
      Ikävä
      55
      874
    9. Ei sitten, ei olla enää

      Missään tekemisissä. Unohdetaan kaikki myös se että tunsimme. Tätä halusit tämän saat. J miehelle. Rakkaudella vaalea na
      Ikävä
      77
      870
    10. Haluaisin ottaa sinut syleilyyni mies

      Olet suloinen...
      Ikävä
      44
      785
    Aihe