11-) T-SQL String Fonksiyonları

Поділитися
Вставка
  • Опубліковано 15 гру 2024

КОМЕНТАРІ • 22

  • @tolgapolat3984
    @tolgapolat3984 5 років тому +8

    değeri bilinmeyen mükemmel bir kaynak.

  • @lailaheillallah-1
    @lailaheillallah-1 2 роки тому +4

    Düzeltme: Transact sql de index 1 den başlıyor.

  • @feyzullacavid
    @feyzullacavid Рік тому +1

    Hocanın yazdığı sonuncu örneği anlamakta zorluk çekenler için, detaylı anlatmaya çalıştım:
    İlk önce hocanın nazarından kaçmış olacak ki, küçük bir yanlışı düzelterek yazılmış olan örnekte SUBSTRİNG fonksiyonunun index numralanmasını C#-daki gibi 0-dan değil de, 1-den başlayarak numaralanma yaptığını düzeltelim.
    Hocam, Substring fonksiyonuna, bu fonksiyonun kuralları gereği ilk önce nereden başlayacağını belirtmiş. Ve sonraki adımda kaç tane karakteri Substring yapacağını bildirmek için, tüm adın içerdiği karakter sayısından, boşluk karakterinin de olduğu yere kadar olan karakter sayısını çıkmış (böylece biz soyismin kaç karakterden oluştuğunu bilebiliriz).
    Örneğin 'Maria Anders' adından boşluk karakterine kadar olan kısmın çıktısını yaptığımızda, yerde :
    -----> Maria Anders(12 karakter) - Maria_(6 karakter) = Anders(6 karakter)
    kalmış olacak.
    Fakat dikkata almamız gereken nokta var ki, Substring fonksiyonu kodda belirtdiğimiz üzere kesim işlemini CHARINDEX fonksiyonunun boşluk karakterini döndürdüyü yerden başlayarak yapıcak olmasıdır. Yani yukarıdaki örneğe yeniden bakıcak olursak, SUBSTRİNG fonksiyonu burada 'Maria Anders'' isimini A-karakterinden değil de, boşluk karakterinden başlayarak substring yapacaktır. Eğer 'Maria Anders'' ismini boşluk karakterinden başlayarak 6 karakter almış olursak, sonuncu harfi yazdıramayacağızdır (Anders yerine Ander gibi bir çıktı verecektir). Bu işlemin aynısı ne yazık ki, diğer adlar için de geçerli olacaktır.
    Bunu çözmenin yolu hocanın yazdığının yanı-sıra, CHARINDEX fonksiyonunun bize döndürdüyü rakamın üzerine 1 ekleyerek, substring fonksiyonun bize gereken noktadan (yani 'Maria Anders'' isminde A karakterinden başlayarak) çalışmasını sağlaya biliriz. Böylece soyisimler elimizde tam olarak bulunacaktır.
    --------> select MusteriAdi, Substring(MusteriAdi, CHARINDEX ( ' ', MusteriAdi)) +1, (LEN(MusteriAdi) - CHARINDEX(' ', MusteriAdi))) from Musteriler.
    İnşallah birileri okuyup faydalana bilir. Çok teşekkürler Gençay Hocam, Allah sizden razı olsun.

    • @idincern
      @idincern Рік тому

      Eline sağlık arkadaşım, tek bir queryde Adı ve Soyadı ayrı ayrı sütunlarda gelecek şekilde olan kod da şu şekilde:
      select MusteriAdi as [Müşteri Adı], SUBSTRING(MusteriAdi, 1, CHARINDEX(' ', musteriadi)) as Adı, Substring(MusteriAdi, CHARINDEX (' ', MusteriAdi)+1, (LEN(MusteriAdi) - CHARINDEX(' ', MusteriAdi))) as Soyadı from Musteriler

    • @feyzullacavid
      @feyzullacavid Рік тому

      @@idincern Kardeş seninle iletişime geçe bilmem için bana bir sosyal medya, filan adresi vere bilir misin?
      Katıl'a özel izleyicilerle ilgili sorularım olacak, mümkünse yardım et.

  • @holdbar609
    @holdbar609 Рік тому +2

    Ben de müşterinin sadece soyadını yazmak için şöyle bir çözüme ulaştım;
    Select RIGHT(MusteriAdi, CHARINDEX(' ', REVERSE(MusteriAdi))) from Musteriler
    Müşteri adının tersten yazılmış halinde boşluk karakterine kadar kaç karakter olduğunu ölçtüm. Çıkan sonuç kadar karakteri de sağdan yazdırdım.

  • @msenelk
    @msenelk 10 місяців тому +1

    08.02.2024 eğitime devam. Teşekkür ederim. :)

  • @suzansuzan2779
    @suzansuzan2779 3 роки тому +1

    Cok deşekür ederim ))))

  • @bilalacar6539
    @bilalacar6539 4 роки тому +2

    Merhaba;
    Bu videodaki son örnekte aşağıdaki gibi +1 ekleyince araya, soyadından önceki boşluğu almamış oluyoruz sanırım.
    select SUBSTRING (MusteriAdi, (CHARINDEX(' ', MusteriAdi)+1), LEN(musteriadi) - (CHARINDEX(' ', MusteriAdi) - 1)) from Musteriler
    Videolar için teşekkürler.

    • @melissutci7810
      @melissutci7810 4 роки тому

      son örnekte -1 neden yazdık anladınız mı acaba o kısmı

    • @by-Org
      @by-Org 3 роки тому +1

      EWT KATILIYORUM GÖZDEN KAÇMIŞ GİBİ

    • @tuulensuoja8805
      @tuulensuoja8805 3 роки тому

      CHARINDEX farkettiğim kadarıyla 0dan değil 1den başlıyor indexlemeye oradan hesap ederseniz videoda boşluk dahil edildiğinden +1 eklenmezse soyadının son karakteri eksik yazılacaktır.

  • @idilbesler
    @idilbesler 3 роки тому +1

    Merhaba, denediğim kadarıyla substring Indexleri sayarken 0 1 2 diye başlamıyor, 1 2 3 diye sayıyor. Bu yüzden sayıda kelimesini düşünecek olursak ıd yerine yı yazıyor.

    • @lailaheillallah-1
      @lailaheillallah-1 2 роки тому

      c# ta index 0 dan başlıyor transact sql de 1 den başlıyor ondan dolayı.

  • @mehmetakifturker8586
    @mehmetakifturker8586 3 роки тому

    hocam son örnekte çıkarmayı yapmamız çok önemli değil aslında uzunluğu kadar gittiği için bize yine soyadı değerlerini veriyor.

  • @serkanalkan8160
    @serkanalkan8160 2 роки тому

    Son örnekte sadece select SUBSTRING (MusteriAdi, CHARINDEX(' ',MusteriAdi),LEN(MusteriAdi)) from Musteriler yeterli oluyor zaten

  • @Eren_Ozdemir
    @Eren_Ozdemir Рік тому

    Farklı cevap için
    select RIGHT(MusteriAdi,LEN(MusteriAdi)-CHARINDEX(' ',MusteriAdi)) from Musteriler ben bu şekilde yaptım

  • @nasehqasimov5566
    @nasehqasimov5566 6 років тому

    Tesekkurler

  • @abdulbakideveci6938
    @abdulbakideveci6938 Рік тому

    Son örneği açıklayıcı bir şekilde anlatabilir misiniz ?

  • @Mey_xos
    @Mey_xos 3 роки тому

    Select SUBSTRING(MusteriAdi,CHARINDEX(' ', MusteriAdi) ,LEN(MusteriAdi) - CHARINDEX(' ', MusteriAdi)) from Musteriler hocam kodun doğrusu bu değil mi -1 yazmaya çalışıyorum hata veriyor neden fazladan parantez kullandınız

    • @Mey_xos
      @Mey_xos 3 роки тому

      En son yazılan Charindexin önünde parantez var ve hala neden var olduğunu çözemedim

  • @alpaslanakgun1385
    @alpaslanakgun1385 5 років тому

    select SUBSTRING(MusteriAdi,CHARINDEX(' ',MusteriAdi),Len(MusteriAdi)-(CharIndex('',MusteriAdi))) from Musteriler ([Hocam bu sekildede calıstı soyisimi son örnek ]