Poslao: 23 Mar 2007 09:39
|
offline
- 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.
|
|
Poslao: 23 Mar 2007 13:01
|
offline
- beli0135
- Executor
- 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.
|
|
|
|
Poslao: 23 Mar 2007 14:22
|
offline
- 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
|
|
|
|
Poslao: 24 Mar 2007 15:19
|
offline
- srdjos
- 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
|
|
|
|
Poslao: 24 Mar 2007 16:22
|
offline
- loshmi_sr
- Građanin
- 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
|
|
|
|
Poslao: 24 Mar 2007 18:51
|
offline
- beli0135
- Executor
- 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
|
|
|
|
Poslao: 24 Mar 2007 23:06
|
offline
- loshmi_sr
- Građanin
- 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
|
|
|
|
Poslao: 27 Mar 2007 00:22
|
offline
- srdjos
- 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
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
|
|
|
|
Poslao: 27 Mar 2007 04:23
|
offline
- beli0135
- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
eheh, nemojte da vam pichnem jedan osrednji query sa kojima baratam po 11h dnevno...
|
|
|
|
Poslao: 27 Mar 2007 13:30
|
offline
- loshmi_sr
- Građanin
- 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.
|
|
|
|