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.
| İşlem | SQL Server | PostgreSQL | MySQL | Oracle | SQLite |
|---|---|---|---|---|---|
| Büyük / küçük harf | UPPER(s), LOWER(s) (hepsinde aynı) | ||||
| Uzunluk | LEN(s) | LENGTH(s) | CHAR_LENGTH(s) | LENGTH(s) | LENGTH(s) |
| Parça al | SUBSTRING(s, 1, 4) | SUBSTRING(s, 1, 4) | SUBSTRING(s, 1, 4) | SUBSTR(s, 1, 4) | SUBSTR(s, 1, 4) |
| Soldan / sağdan | LEFT(s,3) | LEFT(s,3) | LEFT(s,3) | SUBSTR(s,1,3) | SUBSTR(s,1,3) |
| Konum bul | CHARINDEX('@', s) | STRPOS(s, '@') | INSTR(s, '@') | INSTR(s, '@') | INSTR(s, '@') |
| Birleştir | a + b, CONCAT(a, b) | a || b | CONCAT(a, b) | a || b | a || b |
| Boşluk temizle | TRIM(s), LTRIM(s), RTRIM(s) | ||||
| Değiştir | REPLACE(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.