Ana içeriğe geç
Kesit SQL
Temel · Fonksiyonlar

Metin fonksiyonları

Büyük/küçük harf, uzunluk, parça alma, arama, birleştirme ve SQL türleri arası farklar.

Uygulamada aç, 7 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

En sık kullanılan metin işlemleri

Metin fonksiyonları SQL türleri arasında en çok isim değiştiren gruptur. Tabloyu bir başvuru olarak kullan; kod kutularında seçili SQL türünün yazımı görünür.

İşlemSQL ServerPostgreSQLMySQLOracleSQLite
Büyük / küçük harfUPPER(s), LOWER(s) (hepsinde aynı)
UzunlukLEN(s)LENGTH(s)CHAR_LENGTH(s)LENGTH(s)LENGTH(s)
Parça alSUBSTRING(s, 1, 4)SUBSTRING(s, 1, 4)SUBSTRING(s, 1, 4)SUBSTR(s, 1, 4)SUBSTR(s, 1, 4)
Soldan / sağdanLEFT(s,3)LEFT(s,3)LEFT(s,3)SUBSTR(s,1,3)SUBSTR(s,1,3)
Konum bulCHARINDEX('@', s)STRPOS(s, '@')INSTR(s, '@')INSTR(s, '@')INSTR(s, '@')
Birleştira + b, CONCAT(a, b)a || bCONCAT(a, b)a || ba || b
Boşluk temizleTRIM(s), LTRIM(s), RTRIM(s)
DeğiştirREPLACE(s, 'eski', 'yeni')

E-postadan alan adı çıkarmak

SELECT email,
       SUBSTR(email, INSTR(email, '@') + 1) AS alan_adi
FROM customers
WHERE email IS NOT NULL;

Baş harfler ve birleştirme

SELECT first_name, last_name,
       SUBSTR(first_name, 1, 1) || '.' || SUBSTR(last_name, 1, 1) || '.' AS bas_harf
FROM employees;
Birleştirme ve NULL|| ve SQL Server'daki +, bir taraf NULL ise sonucu NULL yapar. CONCAT() ise SQL Server, PostgreSQL ve Oracle'da NULL'ı boş metin sayar; MySQL'de CONCAT yine NULL döner. Oracle'da boş metin '' zaten NULL'dır.
MySQL tuzağıMySQL'de || varsayılan olarak mantıksal VEYA (OR) demektir: 'a' || 'b' sonuç olarak 0 döner. Metin birleştirmek için her zaman CONCAT kullan.
Türkçe karakterlerBu uygulamada UPPER ve LOWER Türkçe kurala göre çalışır: i ↔ İ, ı ↔ I (içinde @ geçen metinlerde, yani e-postalarda, İngilizce kurala göre). Gerçek sunucuda sonucu collation ya da yerel ayarı belirler: Yerel ayarı Türkçe olmayan bir PostgreSQL UPPER('inci') için INCI döndürür, saf SQLite ise yalnız İngilizce harfleri çevirir. İşe başladığın sunucuda “i” ile “İ” dönüşümünü mutlaka test et.
Alıştırmalara geç (7)