• Sponkilonk

    Någon som är bra på sql och har tid att hjälpa med en fråga??

    Någon som orkar svara på en fråga???

  • Svar på tråden Någon som är bra på sql och har tid att hjälpa med en fråga??
  • ATN

    börja med att skriva frågan så kanske du får svar xD

  • c0ol

    Ja precis skriv frågan, hur ska man annars kunna hjälpa?

  • Sponkilonk

    Lyckades lösa mitt första sql-bekymmer, men har sprungit på ett nytt. =(
     
    Min fråga är helt enkelt så här. Jag skall göra en utsökning i EN tabell som för övrigt heter kund. Jag skall få fram fnamn och enamn utskrivet med versaler på de kunder som har ett 'S' i efternamnet. (Jag kör med Oracle sql developer)

    Någon som möjligtvis har en susning om hur jag kan formulera frågan??

  • jaghopparhögt

    Typ något så här kanske, längesen jag ens tänkte på sql frågor men detta kanske ger dig någon ledtråd.

    Select fnamn,enamn from kund where ename = '[s]';

  • Sponkilonk

    Tack ni som svarat. Tyvärr funkar inte något av alternativen. =(
    Får jobba vidare med den.

  • Tholie

    SELECT UPPER(fnamn), UPPER(enamn) FROM kund WHERE enamn LIKE '%S%'

    Tänk på att oracle är "case sensitive" (vad det nu heter på svenska) så du får bara träffar där efternamnet innehåller ett versalt S. Vill du ha svar för både stora o små s får du peta in ett UPPER eller LOWER i villkoret också. Dvs WHERE upper(enamn) like '%S%'

  • Sponkilonk

    Ohh, tusen tack för hjälpen. Hade missat att sätta upper i where-villkoret också, och fick därför inga träffar. Har ett problem kvar med en fråga. Kanske orkar ni kika på det med. =)

    Visa username, passwd, fnamn, enamn för de kunder som heter
    'nyberg' eller 'kvist' i efternamn men som inte heter 'roger' i förnamn.

    Jag skulle vilja skriva något sånt här:

    SELECT username, passwd, fnamn, enamn
    FROM kund2
    WHERE lower(enamn) = 'nyberg' or lower(enamn) = 'kvist' and lower(enamn)! = 'roger';

    ....men det blir ju helgalet då alla roger kommer med endå. =(

    De andra villkoren funkar. Någon med en idé?
                                                               

    <!-- /* Font Definitions */ @font-face {font-family:Times; panose-1:2 2 6 3 5 4 5 2 3 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-536855809 -1073711039 9 0 511 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Times;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

  • c0ol

    Js du ställer ju skillt från vilkoret mot enamn istället för fnamn.

  • Tholie
    Sponkilonk skrev 2010-02-13 22:25:14 följande:
     Jag skulle vilja skriva något sånt här:SELECT username, passwd, fnamn, enamn FROM kund2WHERE lower(enamn) = 'nyberg' or lower(enamn) = 'kvist' and lower(enamn)! = 'roger';....men det blir ju helgalet då alla roger kommer med endå.
    Då får peta in lite parenteser i dina villkor. Alltid klurigt att använda OR, den fattar inte att namnet ska vara antingen nyberg eller kvist, men aldrig roger utan dem.

    WHERE (lower(enamn='nyberg')  OR lower(enamn = 'kvist')) AND lower(fnamn) != 'roger'.

    Använd annars en IN-sats, blir lite tydligare:
    WHERE lower(enamn) IN('nyberg', 'kvist') AND lower(fnamn) != 'roger'.

    och kanske även en NOT IN om du skulle ha fler förnamn att ta bort
    AND lower(fnamn) NOT IN('roger')

    Sen hade du skrivit lite fel i ditt villkor (har du säkert sett). Du jämför roger med Enamn, inte Fnamn...

    Funkar nu?
  • Sponkilonk

    Ohh, va glad jag blir nu. =) Du är ju grym på detta. =) Tack så jättemycket. Nu funkar det!

Svar på tråden Någon som är bra på sql och har tid att hjälpa med en fråga??