Cədvəldəki bir sütunu bir neçə sütuna ayırmaq
Salam, dostlar.
Bəzən bir sütundakı məlumatı bir neçə hissəyə ayırmaq lazım gəlir. Məsələn bir sütunda yazılmış ad, soyad, ata adını ayrı-ayrı sütunlarda göstərmək kimi. Bunun üçün yazdığım stringi sizlərlə paylaşıram.
Update cədvəl set soyad = Ltrim(SubString([sütunun adı],1,Isnull(Nullif(CHARINDEX(' ',[sütunun adı]),0),1000))), ad = Ltrim(SUBSTRING([sütunun adı],CharIndex(' ',sütunun adı]), CAse When (CHARINDEX(' ',[sütunun adı],CHARINDEX(' ',[sütunun adı])+1)-CHARINDEX(' ',[sütunun adı]))<=0 then 0 else CHARINDEX(' ',sütunun adı],CHARINDEX(' ',[sütunun adı])+1)-CHARINDEX(' ',[sütunun adı]) end )), ata = Ltrim(SUBSTRING([sütunun adı],Isnull(Nullif(CHARINDEX(' ',[sütunun adı],Charindex(' ',[sütunun adı])+1),0),CHARINDEX(' ',[sütunun adı])), Case when Charindex(' ',[sütunun adı])=0 then 0 else LEN([sütunun adı]) end))
Bir az qarışıq görsənsə də buradakı məntiq çox sadədir. Verilmiş qrafadakı məlumatı oxuyur və boşluqlarına görə ayırır. Əgər yalız ad soyad varsa, ata adını boş saxlayır və ya əksinə.
Baxılıb: 1699 dəfə
Cavablar ( 5 )
Məlumat üçün çox sağ ol, İsmayıl bəy, icazənlə sual verim. Bu T-Sql scripti-dir? Nə üçün burada Select deyildə Update-dən istifadə etmisiniz?
Salamlar. İsmayıl bəy üzünü görək .
Əlimdə SQL-dən imtahana hazırlaşıram, xoşluqdan yox, məcburidir . Vüsal bəy demişkən, niyə Selecet yox digər metod istifadə edirsiniz ?.
Mən burda sadəcə yolunu göstərdim ki, əgər bir sütunda Əliyev Vəli Pirvəli yazılıbsa, bunu ayrı-ayrılıqda üç sutuna necə ayırmaq olar. Ona görə Update yazmışam yəni əsas olan sintaksisin quruluşudur. Bunu yeniləmək və ya select çəkməkdə azadsınız
Təşəkkürlər İsmayıl bəy. Üzr istəyirəm ama yenə sual verməliyəm. (Proqramlaşdırma (с# & sql) hobbimdir, arada məşğul olur, birşeylər öyrənməyə çalışıram). Select və Update sintaktik olaraq uyğun gəlmirlər axı, İsmayıl bəy. Var olan bir sütunu Update edərək var olan üç sütuna əlavə edirsiniz, yoxsa yeni sütünlar yaranır? Select-lə bu işi görsək əgər, daimi olmayan, sadəcə görüntü üçün (xəyali sütun) sütun əldə edərik, update-də isə sütün ya yaradılmalıdır, ya var olmalıdır. Sizin yazdığınız hansına uyğundur? Yəni zəhmət olmazsa bu kodu açıqlayasınız, olarmı?
Vüsal bəy, deməli məsələ belədir. Tutaq ki bizim (id, saa) adlı 2 sütunu olan cədvəlimiz var. Bizə isə lazımdır ki, bu cədvəli yeniləyib (id, saa, ad, soyad, ata_adı) adlı 4 sütun da əlavə edək və yeni sütunları saa adlı sutundan götürdüyümüz məlumatlarla dolduraq. O zaman bu sintaksisdən istifadə edə bilərsiniz. Məsələn, bizə adı “Əli” olan istifadəçiləri seçmək lazımdır, onda birləşmiş sutunda (id, saa) filtr vermək çətindir. Ona görə bu sütunu parçalayıb, ayrı-ayrı sütunlar şəklində yadda saxlamaq daha yaxşıdır.