SQL Server'da yerleşik bir işlevdir. Kullanıcının şunları yapmasına olanak tanır: NULL değerlerini değiştir belirli bir değiştirme değeriyle. Bu makale, ifade veya tablo kayıtlarının NULL değerlerine sahip olması durumunda alternatif bir değer döndürmek için ISNULL işlevine ilişkin eksiksiz bir genel bakış sunar.
java program döngüsü
Sözdizimi
Aşağıda ISNULL işlevini gösteren bir sözdizimi verilmiştir:
ISNULL ( Expression, Replacement )
Gördüğümüz gibi bu sözdizimi yalnızca iki argümanı kabul ediyor:
İfade NULL olarak değerlendirilirse, bu işlev NULL değerini değiştirme değeriyle değiştirir. Tartışma ne zaman veri türleri farklı , SQL sunucusu değiştirme değeri veri türünü örtülü olarak ifade veri türüne dönüştürür bir değer döndürmeden önce. İfade NULL olmadığında ifade değerini alacağız.
ISNULL işlevi SQL Server (2008'den başlayarak), Paralel Veri Ambarı, Azure SQL Veritabanı ve Azure SQL Veri Ambarı'nda çalışabilir.
ISNULL İşlev Örneği
ISNULL fonksiyonunu SQL Server'daki bazı örneklerle inceleyelim.
1. Sayısal değere sahip ISNULL işlevi
Aşağıdaki örnekte ISNULL işlevi kullanılmaktadır. Burada ilk argüman NULL'dur; bu nedenle sonuçtaki ikinci argümanın değerini döndürür:
SELECT ISNULL(NULL, 25) AS Result;
Çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:
2. Karakter dizisi verileriyle ISNULL işlevi
Aşağıdaki örnekte ISNULL işlevi kullanılmaktadır. Burada string değerini alacağız 'Merhaba' çünkü bu ilk argümandır. ISNULL() işlevi tanımından itibaren, NULL DEĞİLSE ilk argüman değerini döndürür:
SELECT ISNULL('Hello', 'Javatpoint') AS Result;
Çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:
3. Değişkenlerle ISNULL işlevi
Aşağıdaki örnek ISNULL işlevini kullanıyor ve sonucu bir değişken kullanarak döndürüyor:
DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result;
Çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:
4. Tablodaki ISNULL Fonksiyonu
Burada, boş değerler içerdiğinde bir sütun değerini nasıl anlamlı bir değerle değiştirebileceğimizi göreceğiz. Öncelikle 'adlı bir tablo oluşturalım' Çalışan' aşağıdaki ifadeyi kullanarak:
CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL );
Şimdi aşağıdaki ifadeyi kullanarak bu tabloya bazı değerler ekleyeceğiz:
INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL);
Tabloyu doğruladığımızda şunu görebiliriz. çalışan 2 ve 3'ün NULL'u var değer.
Bu sütunların NULL değerlerini tabloda kalıcı olarak güncellemeden değiştirmek istediğimizi varsayalım. Bu durumda NULL değerlerini belirli bir değerle değiştirmek için ISNULL işlevini kullanabiliriz.
Örneğin , geri dönmek istiyoruz yaş Ve maaş Çalışan tablosunda sütunları NULL değerlere sahipse sırasıyla 22 ve 25000 ile çalışanın sayısı. Bunu aşağıdaki ifadeyi kullanarak yapabiliriz:
SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee;
Çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:
Tabloda hiçbir sütunun NULL değeri olmadığı sütun için sorguyu ISNULL fonksiyonu ile çalıştırırsak bu sorgu satırların gerçek değerlerini döndürecektir.
html'den js işlevini çağırmak
Örneğin , güncelleştirdik maaş olan çalışanın kimlik=2 aşağıdaki gibi:
UPDATE Employee SET Salary = 65000 WHERE ID=2;
Yine ISNULL fonksiyonunu çalıştırdığımızda maaş sütunu değişmemektedir. Aşağıdaki çıktıya bakın:
5. Toplama işlevleriyle ISNULL
SQL Server ayrıca SUM, AVG gibi toplama işlevlerini ISNULL işleviyle kullanmamıza da olanak tanır. almamız gerekebileceğini varsayalım. bir maaş toplamı Çalışan tablosunda bulunan sütun ve herhangi bir maaş sütununda NULL varsa, maaşlar eklenmeden önce bu sütun 25000 ile değiştirilecektir.
Toplama yöntemlerini uygulamadan önce aşağıdaki sorguyu kullanarak çalışan maaşını id'si 2 olan NULL ile güncelleyeceğiz.
UPDATE Employee SET Salary = NULL WHERE ID=2;
Aşağıdaki örnekte öncelikle NULL değeri 25000 ile değiştiriliyor ve daha sonra bunun üzerinde SUM fonksiyonu gerçekleştiriliyor. Aşağıdaki çıktıya bakın:
SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee;
Çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:
Benzer şekilde ISNULL işlevi, NULL değerlerini değiştirmek ve ardından ortalama değeri döndürmek için kullanılabilir. AVG() işlevi . Aşağıdaki açıklamaya bakın:
SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee;
Çalıştırdıktan sonra aşağıdaki çıktıyı alacağız:
SQL Server ISNULL ile IS NULL arasındaki fark
ISNULL ve IS NULL işlevlerinin her ikisi de SQL Server'da farklıdır. ISNULL fonksiyonunu ihtiyacımız olduğunda kullanırız. NULL değerlerini değiştir Belirtilen değerle. Öte yandan IS NULL fonksiyonunu istediğimizde kullanırız. NULL değerleri tanımlayın bir tabloda.
Farklılıklarını göstermek için aşağıdaki örneği görelim. .
Çalışan verilerini 'den almak istediğimizi varsayalım. Çalışan' Maaş sütununda NULL değerleri içeren tablo. Bu tür bilgileri elde etmek için IS NULL fonksiyonunu kullanmalıyız. NEREDE maddesi şu şekilde:
SELECT * FROM Employee WHERE Salary IS NULL;
Maaşı NULL olan çalışanın ayrıntısını döndürecektir:
Şimdi bu tip bilgileri ISNULL fonksiyonu ile almaya çalışırsak SQL Server aşağıdaki yollardan geçer. hata :
SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0;
İşte hata:
Bu nedenle, SQL Server'ın NULL değerlerini bulmak için ISNULL'u kullanmamıza izin vermediği açıktır.