PostgreSQL'de Dizelerin Alt Dizilerini Oluşturun

Postgresql De Dizelerin Alt Dizilerini Olusturun



Bir dizeden belirli bir bölümü (alt dizeyi) çıkarmak isteyebileceğiniz durumlar vardır. Yalnızca verilen bölümle ilgileniyor olabilirsiniz ve çıktınızda dizenin diğer bölümünü dışarıda bırakmak isteyebilirsiniz. Tek bir dize olarak 'fname lname' gibi bir tam adınızın olduğu ve çıktınızda yalnızca 'fname'i çıkarmak istediğiniz bir durumu düşünün. Bunun için PostgreSQL substring fonksiyonunu kullanmalısınız. PostgreSQL'de dizelerin alt dizelerini nasıl oluşturabileceğinizi anlamanıza yardımcı olacak örnekler içeren ayrıntılı bir kılavuz hazırladık.

PostgreSQL'de Dizelerin Alt Dizilerinin Nasıl Oluşturulacağına İlişkin Örnekler

Kontrol etmemiz gereken ilk şey sözdizimidir.

SUBSTRING( dize/sütun_adı, başlangıç_konumu, uzunluk)

Verilen sözdiziminde, alt dize oluşturmak istediğiniz dizeyi belirtebilir veya tablonuzda sütunu belirtebilirsiniz. Daha sonra, alt dizenin başlamasını istediğiniz dizedeki konumu belirtmeniz gerekir. Son olarak alt dizenin uzunluğunu veya dizenin bitiş konumunu belirtin. Uygulamalı olarak görmek için birkaç örnek verelim.







Örnek 1: Alt Dize Uzunluğunu Belirleyin

Hedef dizginize sahip olduğunuzda alt dizgenin ne kadar uzun olması gerektiğini ayarlayabilirsiniz. Örneğin, diziniz “Linuxhint” ise ve alt dizinizi “Linux” olarak oluşturmak istiyorsanız aşağıdaki komutu uygulayın:



Kullanıcı adı olarak SUBSTRING('Linuxhint' FROM 1 FOR 5) SEÇİN;

Başlangıç ​​konumumuzu belirtmek için FROM anahtar sözcüğünü ve alt dizenin uzunluğunu belirtmek için FOR anahtar sözcüğünü kullanıyoruz. “Kullanıcı adı” çıktımıza verdiğimiz isimdir.



Komutu çalıştırdığımızda aşağıdaki çıktıyı elde ediyoruz. Çıktı olarak istediğimiz alt dizgeyi nasıl elde ettiğimize dikkat edin:





Alt dizgenin dizginizde farklı bir başlangıç ​​konumundan oluşturulmasını istediğinizi varsayalım. Örneğin, alt dize olarak 'ipucu' istiyorsanız başlangıç ​​konumunu ve uzunluğunu değiştirmeniz yeterlidir.



Bunun için komutumuzu şu şekilde uyguluyoruz:

Örnek 2: Alt Dizenin Konumunu Belirleyin

Bazen dizeniz elinizde olabilir ancak alt dizenin tam uzunluğunu bilemezsiniz. Ancak alt dizeyi oluşturmaya hangi konumdan başlayacağınızı belirtebilirsiniz. Çıktı, belirtilen konumdan sonuna kadar tüm dize bölümlerini görüntüler.

Bu örnekte “Merhaba Linuxhint” şeklinde dizimiz var. Konumunu belirtmeden 'Linuxhint'i alt dizimiz olarak almak için, yalnızca alt diziyi hangi konumda oluşturmak istediğimizi belirtmemiz yeterlidir. Bu durumda 6. pozisyondan başlıyoruz. Dolayısıyla komutumuz şu şekilde oluyor:

Kullanıcı adı olarak SUBSTRING('Hello Linuxhint' FROM 6)'yı SEÇİN;

Örnek 3: Başlangıç ​​ve Bitiş Konumlarını Belirleme

Bir dize verildiğinde, başlangıç ​​ve bitiş konumlarını belirterek bir alt dize oluşturabilirsiniz. Bu şekilde, dizenin uzunluğu istenen alt dizeden daha uzun olsa bile, onu yalnızca belirtilen başlangıç ​​ve bitiş konumlarına göre oluşturacaktır.

Stringimiz olarak “Hello Linuxhint” kullanarak alt stringimizi “Hello Linux” olarak oluşturabilir ve başlangıç ​​ve bitiş konumlarını aşağıdaki gibi belirterek diğer bölümleri atlayabiliriz:

Kullanıcı adı olarak SELECT SUBSTRING('Merhaba Linuxhint', 1, 11);

Bu durumda anahtar kelimeye gerek yoktur, yalnızca başlangıç ​​ve bitiş konumları gerekir.

Örnek 4: PostgreSQL Tablosuyla Çalışmak

Tablonuzdaki belirli bir sütundan seçtiğiniz değerlere göre bir alt dize oluşturmak da mümkündür. Örneğimiz için “müşteriler” tablosunu kullanıyoruz.

Diyelim ki “cust_email” sütununu hedefliyoruz ve uzunluğunu belirterek bir alt dize oluşturmak istiyoruz. Komutumuzu şu şekilde alırdık:

Sütundaki her değer için çıktının, orijinal dizenin uzunluğu 3 olan bir alt dize olduğuna dikkat edin.

İsim sütunumuzda tabloyu tam isimle güncelleyelim. Yeni tablomuz şu şekilde görünüyor:

Şimdi, eğer her bir müşterimizin adı olan isim sütunundan sadece ilk bölümü çıkarmak istiyorsak, isim sütunu için bir alt dize oluşturmak işimizi görecektir. Burada başlangıç ​​pozisyonunu belirtmemiz gerekiyor. Alt dizenin uzunluğunu her dizede boşluk bulunan konum olacak şekilde ayarladık.

Boşluk, ad ve soyad arasındaki ayrımı belirtir. Böylece komutumuz string içerisinde boşluğun başladığı konumu kontrol eder. Ardından, ilk konumdan boşlukla buluştuğu yere kadar olan alt dizeyi seçin.

Komutumuzu şu şekilde çalıştırıyoruz:

SELECT order_id, SUBSTRING(name FROM 1 FOR POSITION( ‘ ‘ IN name) – 1) AS client_fname FROM müşterilerden;

“order_id” ve alt dizeyi seçiyoruz ve çıktımız aşağıdaki gibi görünüyor:

PostgreSQL tablosundaki dizelerden alt dizeleri bu şekilde oluşturabilirsiniz.

Çözüm

PostgreSQL, kullanıcıların farklı kriterleri kullanarak bir alt dize oluşturmasına olanak tanıyan alt dize işlevini sunar. Hedefinize bağlı olarak alt dizenin uzunluğunu veya başlangıç ​​ve bitiş konumlarını belirtebilirsiniz. Bu yazıda ele alınan örnekler, PostgreSQL'de alt dizeler oluşturma konusunda kendinizi rahat hissetmenize yardımcı olacaktır. Konsepti kavramak için pratik yapmaya devam edin.