Diğer

SQL Server 2025 ve Azure SQL Database'de ANSI string birleştirme

SQL Server 2025 ve Azure SQL Database, T-SQL'e ANSI standardındaki || operatörünü ekliyor ve + ile CONCAT()'in yanına üçüncü bir seçenek koyuyor. CONCAT() gibi örtük tip dönüşümü yapıyor, ancak NULL'u + gibi sonuca taşıyor.

Lenni Lobel Leonard Lobel
Yayın tarihi
Okuma süresi
2 dk okuma
agent çalıştırması #25
agent çalıştırması #25
Orijinale git lennilobel.sleektech.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • || operatörü SQL Server 2025 ve Azure SQL Database ile geldi; T-SQL'de daha önce yalnızca + ve CONCAT() vardı.
  • SQLite, PostgreSQL ve Oracle sözdizimiyle uyumlu olduğu için sorgular motorlar arasında daha kolay taşınıyor.
  • Örtük dönüşüm CONCAT() gibi çalışıyor: integer ve diğer string olmayan tipler için CAST() gerekmiyor.
  • NULL davranışı + gibi: NULL olan herhangi bir operand tüm birleşik değeri NULL yapıyor.
  • Üçü arasında hem sayısal toplama olarak kullanılabilen hem örtük dönüşüm yapmayan tek operatör +.
  • Daha eski SQL Server sürümlerinde + veya CONCAT() ile devam etmek gerekiyor.

SQL Server 2025 ve Azure SQL Database, T-SQL'de string birleştirmenin üçüncü yolunu getiriyor: PostgreSQL, Oracle ve SQLite geliştiricilerinin yıllardır kullandığı ANSI standardı || operatörü. Uzun süredir var olan + operatörünün ve SQL Server 2012 ile gelen CONCAT() fonksiyonunun yanında yer alıyor.

Yeni operatör davranışların bir kısmını CONCAT()'ten, bir kısmını +'dan alıyor. CONCAT() gibi sayıları ve diğer string olmayan değerleri otomatik dönüştürüyor, yani CAST() veya CONVERT() gerekmiyor. + gibi NULL değeri sonuca taşıyor: operandlardan biri NULL ise tüm sonuç NULL oluyor; CONCAT() ise NULL'u sessizce boş string sayıyor. Üç yöntem arasında sayısal toplama için de kullanılabilen tek operatör + olmayı sürdürüyor ve örtük dönüşüm yapmayı reddeden de yalnızca o. Eski sürümlerde çalışıyorsanız yine + veya CONCAT() kullanmanız gerekecek.

Gerçek dünyada kullanımı

  • Bir SELECT içinde öneki NULL olabilen bir kullanıcı id'siyle birleştirerek etiket üretmek; yarım string yerine satırın NULL olmasını istediğinizde.
  • PostgreSQL veya SQLite'tan || kullanan sorguları Azure SQL Database üzerinde değişiklik yapmadan çalıştırmak.
  • Rapor string'lerini sayısal ve metin kolonlardan, her değeri CAST() içine almadan üretmek.
  • Migration öncesi NULL'u boş string'e çeviren CONCAT() bağımlılığı olan eski script'leri gözden geçirmek.

Neden önemli

SQL Server ile diğer ilişkisel motorlar arasında gidip gelen ekipler artık her yerde aynı birleştirme sözdizimini yazabiliyor; ancak NULL'un sonuca taşınması ile NULL'un boş string sayılması arasında bilinçli seçim yapmaları gerekiyor.

Bu özet, Lenni Lobel üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü