SQL upit

1

SQL upit

offline
  • Dom 
  • Novi MyCity građanin
  • Pridružio: 29 Jan 2007
  • Poruke: 17

Imam kolonu u kojoj se nalaze imena i prezimena i to na dva nacina
1. ime pa dva space-a pa prezime pa space-ovi
2. ime jedan space pa onda srednje slovo pa jedan space pa prezime pa space-ovi
Meni trebaju dvije kolone i to prva u kojoj se nalaze samo imena a druga u kojoj se nalaze samo prezimena. Srednja slova me ne interesuju.
Moze li se napraviti takav upit koji ce od ove jedne kolone napraviti dvije?

Microsoft SQL Server mi je instaliran
Hvala unaprijed



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

U principu moze, probaj sa substring fukncijom MSSQLa.
Inace, ako si ti pravio bazu, vidi da to prepravis. Radi se tako sto se napravi polje za ime, polje za prezime, i polje za srednje ime. I naravno, polje za kompletno ime, ali ono ne treba da se menja nego da se automatski popuni kada se ubace/izmene ova 3 polja.



offline
  • Dom 
  • Novi MyCity građanin
  • Pridružio: 29 Jan 2007
  • Poruke: 17

Ne moze sa substring. Ali ono sto je bitno radi. Ako nekog interesuje rjesenje:
SELECT LEFT(Naziv, CHARINDEX(' ', Naziv) - 1) AS Ime, REVERSE(LEFT(REVERSE(RTRIM(Naziv)), CHARINDEX(' ', REVERSE(RTRIM(Naziv))) - 1)) AS Prezime FROM Tabela

Hvala u svakom slucaju

offline
  • srdjos  Male
  • Zaslužni građanin
  • Pridružio: 27 Sep 2005
  • Poruke: 678

da, to ti je igra, ako ti neko slucajno u ime stavi prazno polje
a ti nemas proveru na unosu, onda ti ta funkcija pada u vodu
npr. srdj an

uradi ono sto ti je Beli rekao
tako ces normalizovati polja u tabeli
a i imaces lakse sql upite
jos ako indexiras ta polja, radi, ne znam, pretrage
upiti ce biti jos brzi

s tim da se ne slazem sa poljem za kompletno ime
njega moze popunjavati sa selectima

pozdrav
Srdjos

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Mali dodatak odgovoru belog (beli0135).
Normalizuje se tabela na ime, srednje_ime, prezime, a kompletno_ime praviš iz upita po potrebi (recimo pri kreiranju izveštaja), dakle, nije ti potrebno u toj tabeli jer dolazi do redudanse podataka.

PozZ

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

@Loshmi_sr

Da, to ti mislis da nije potrebno, ali je iskustvo pokazalo da jeste.. kad imas querije koji su po metar i po, ne treba ti jos i to da radis. Naravno, to sto si rekao da je lako dobiti spojeno polje, jeste, ali nije prakticno. Videces kad pocnes da radis ozbiljne stvari

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

Istina je da je stvar u iskustvu, ali iskustva su različita, što, naravno, ne znači na neću prihvatiti i iskustvo drugih ljudi, ako se pokaže praktičnije.
Do sada, varijanta belog0135 mi se nije pokaza praktičnijom, ako to znači da nisam radio na dovoljno ozbiljnim projektima, prihvatam.

BTW, tek sad vidim da nisam jedini koji tako razmišlja:
@srdjos
Citat:s tim da se ne slazem sa poljem za kompletno ime njega moze popunjavati sa selectima

offline
  • srdjos  Male
  • Zaslužni građanin
  • Pridružio: 27 Sep 2005
  • Poruke: 678

da, pravio sam i takve querije, mislim da je bilo i duzih
:-|

dosta ljudi razmislja u takvom smeru, izbegavaju redudanse
imam dosta oko redudansi u teoriji baza podataka,
e sad, iznimke,
programiranje je cudna zverka
Smile

opet, sve zavisi od velicine projekta, svako misljenje i
resenje je prihvaceno ako se pokaze kao dobro

do sada nisam imao problema kod spajanja dva do
cetiri polja ni sa duzinom querija a sto je jos bitnije
ni kod brzine izvrsavanja upita kod dosta sporijih
mreza i servera

sve to radi ok ako imas dobro normalizovanu
bazu podataka

pozdrav
Srdjos

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

eheh, nemojte da vam pichnem jedan osrednji query sa kojima baratam po 11h dnevno...
Very Happy

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

U praksi, normalizaciju radim do kraja, koristim prirodna spajanja i ugnježdene upite, u zavisnosti od potrebe, te spajanje dva - tri atributa u upitu se brzo i korektno izvršava.

E, sad, beli0135, ne sumnjam u tvoje iskustvo, da me ne shvatiš pogrešno, ali bi bilo dobro da nam demonstriraš jedan "osrednji" query i time argumentuješ svoje tvrdnje.

Pozdrav.

Ko je trenutno na forumu
 

Ukupno su 1167 korisnika na forumu :: 53 registrovanih, 9 sakrivenih i 1105 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: airsuba, ajo baba, Alibaba1981, Andrija357, Asparagus, babaroga, Boris90, Botovac, BraneS, bufanje, cifra, Darko8, draganca, Dvojac005, FOX, GenZee, gorican, hyla, ikan, Ivica1102, JimmyNapoli, Joja2, kjkszpj, Krvava Devetka, Lazarus, Lukaaa, mercedesamg, mikki jons, mikrimaus, mile23, milenko crazy north, milimoj, milos.cbr, moldway, Nemanja.M, nemkea71, nextyamb, oldtimer, opt1, ostoja, Panter, panzerwaffe, Parker, pein, Posmatrac77OKB, randja26, repac, slonic_tonic, stalja, vathra, Velizar, YugoSlav, Zi0mek