Results 1 to 8 of 8

Thread: Kako setovati vrijednost promenljive (u SQL-u) bez koriscenja WHERE clause i kursora?

  1. #1
    Join Date
    Jan 2007
    Location
    Beograd
    Posts
    280
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    Default Kako setovati vrijednost promenljive (u SQL-u) bez koriscenja WHERE clause i kursora?

    Evo teksta zadatka (tema je SQL):

    - data je promjenljiva, recimo, @AAA nvarchar(100) i nekakva tabela, recimo dbo.Lica, a u toj tabeli postoje polja: Ime, Prezime i, jasno, Lice_ID
    - zadatak: promjenljivoj @AAA dodeijliti vrijednost 'Ime', pa 'razmak', pa 'Prezime', iz tabele dbo.Lica, pri cemu je Lice_ID = 5, ALI BEZ koriscenja WHERE clause i kursora. Cak stavise, dati dva takva rjesenja ...

    Ja , da budem posten, ne znam kako ovo da uradim bez koriscenja WHERE clause ... imas li neku ideju kako se to radi ?

    Veliki pozdrav i unaprijed hvala ...
    Doljani forever ...

  2. #2
    Join Date
    Sep 2006
    Location
    Podgorica
    Posts
    1,933
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    2
    Thanked in
    2 Posts

    Default

    Case when ... Then ... Else?

  3. #3
    Join Date
    Jan 2007
    Location
    Beograd
    Posts
    280
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    Default

    Ja sam, u medjuvremenu, dosao do rjesenja ... tako da, sto se mene tice, moderatori mogu da 'zatvore' ovu temu ...

    Pozdrav
    Doljani forever ...

  4. #4
    Join Date
    Oct 2010
    Location
    Mne
    Posts
    8,837
    Thanks Thanks Given 
    27
    Thanks Thanks Received 
    44
    Thanked in
    19 Posts

    Default

    Kakav si ti kralj. Pa napisi koje je rjesenje mozda ce jos nekome koristiti ne razumijem takav postupak - moze lock ja sam nasao rjesenje a ko nadje temu na pretragu i bude imao isto problem nek otvara novu temu dje ce opet isto pitat jer ti nisi podijelio rjesenje sa drugima.

    Послато са LT22i уз помоћ Тапатока
    17 Al-Isra, 37:
    Ne hodi po zemlji nadmeno, jer zemlju ne možeš probiti ni brda u visinu dostići.

  5. #5
    Join Date
    Jan 2007
    Location
    Beograd
    Posts
    280
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    Default

    Quote Originally Posted by Archi View Post
    Kakav si ti kralj. Pa napisi koje je rjesenje mozda ce jos nekome koristiti ne razumijem takav postupak - moze lock ja sam nasao rjesenje a ko nadje temu na pretragu i bude imao isto problem nek otvara novu temu dje ce opet isto pitat jer ti nisi podijelio rjesenje sa drugima.

    Послато са LT22i уз помоћ Тапатока
    U redu, prihvatam 'kritiku', nije bila zelja da 'kraljujem' ... rjesenja su, makar dva, da li ima i vise, ne znam ...

    Jedno je koriscenjem HAVING clause, drugo je koriscenjem INNER JOIN konstrukcije ...

    ================================================== ===============================
    koriscenje HAVING clause:

    SET @Id = 5 -- znaci, ID, odnosno primary key, je neka fiksna vrijednost
    DECLARE @AAA NVARCHAR(100) --- AAA je promenljiva koju treba setovati bez koriscenja WHERE clause
    -- pretpostavka je da postoji tabela Lica, sa poljima: LiceID, Ime i Prezime

    SET @AAA = (SELECT Ime + ' ' + Prezime FROM @Lica GROUP BY Ime, Prezime HAVING MAX(LiceId) = @Id)

    ================================================== ================================
    koriscenje INNER JOIN konstrukcije:

    SET @AAA = (SELECT l.Ime + ' ' + l.Prezime FROM @Lica l INNER JOIN (SELECT @Id AS Id) t ON t.Id = l.LiceId)
    ================================================== ================================

    E sad, ono sto je , barem za mene, interesantno: sto bi iko koristio navedene konstrukcije, a ne WHERE ?

    Inace, ovaj zadatak ja nisam izmislio - radi se o test zadatku sa jednog konkursa (za posao) u Bgd-u ...

    Pozdrav uz izvinjenje ako sam se 'ogrijesio' o pravila CDM-a ...
    Doljani forever ...

  6. #6
    Join Date
    Oct 2010
    Location
    Mne
    Posts
    8,837
    Thanks Thanks Given 
    27
    Thanks Thanks Received 
    44
    Thanked in
    19 Posts

    Default

    Nisi se ogrijesio to je samo neko nepisano praviko. Takav zadatak se koristi da bi provjerili koliko neko duboko zna sql vjerovatno. Inace having se koristi kada gore u upitu koristis neku od ugradjenih funkcija eto npr tu max() a slazem se da je glupo koristiti to pored where. Ali eto to je vjerovatno samo za test.

    Послато са LT22i уз помоћ Тапатока
    17 Al-Isra, 37:
    Ne hodi po zemlji nadmeno, jer zemlju ne možeš probiti ni brda u visinu dostići.

  7. #7
    Join Date
    Jan 2007
    Location
    Beograd
    Posts
    280
    Thanks Thanks Given 
    0
    Thanks Thanks Received 
    0
    Thanked in
    0 Posts

    Default

    > Takav zadatak se koristi da bi provjerili koliko neko duboko zna sql vjerovatno

    Pa, to je i bila neka moja procjena. Mada, koliko je ovo pitanje 'smisleno' je, po meni, za diskusiju ... to jest, koliko kandidat koji je znao odgovor na ovo pitanje (ja nisam) predstavlja bolji izbor od nekog ko poznaje i SQL i spregu sa .NET okruzenjem ? a takav kandidat se i trazio (no, to je, na kraju krajeva, stvar politike same firme).

    Ja se bavim C#-om i .NET okruzenjem od 2006-e godine. Moje znanje SQL-a je, usudio bih se da kazem, solidno, ali nije vrhunsko. Ili da preciziram: smatram da dovoljno dobro poznajem SQL u dijelu , da se tako izrazim, sprege SQL-a sa C#-om i .NET okruzenjem: pisanje uskladistenih procedura, konekcionih stringova, insert, update, delete podataka ... recimo, koristio sam (u dosadasnjoj praksi) neuporedivo slozenije INNER JOIN konstrukcije nego sto je ova koju sam naveo kao mogucnost rada bez WHERE clause ... ali, ne bi mi palo na pamet da umjesto WHERE koristim INNER JOIN, a sigurno ne HAVING ...

    Upravo zelja da naucim kako ovo uraditi me je i motivisala da objavim ovo pitanje na CDM-u ...

    Mozda grijesim, ali ja licno, ni u buducem radu necu koristiti ovakve konstrukcije za ovakve trivijalne probleme, umjesto WHERE konstrukcije ...
    Doljani forever ...

  8. #8
    Join Date
    Oct 2010
    Location
    Mne
    Posts
    8,837
    Thanks Thanks Given 
    27
    Thanks Thanks Received 
    44
    Thanked in
    19 Posts

    Default

    Pa normaono glupo je ovo koristiti umjesto where. Ne samo glupo nego puno sporije za pretragu od where. Zamisli rad sa stotinama hiljada podataka sa koriscenjem inner joina umjesto where. Totalna glupost dati takav zadatak pored milion drugih razumnih zadataka kroz koje ce se provjerit znanje having i joinova.

    Послато са LT22i уз помоћ Тапатока
    17 Al-Isra, 37:
    Ne hodi po zemlji nadmeno, jer zemlju ne možeš probiti ni brda u visinu dostići.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 0
    Last Post: 23-02-14, 21:05
  2. Replies: 4
    Last Post: 18-10-12, 18:34
  3. Replies: 4
    Last Post: 23-12-11, 12:19
  4. Replies: 12
    Last Post: 05-03-11, 16:52
  5. Primanje poziva u toku koriscenja GPRS/MMS usluga
    By VOR in forum Mobilna telefonija i telekomunikacije
    Replies: 4
    Last Post: 24-02-05, 19:40

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •