Forum
Merhaba.
SELECT TOP 1 ISNULL(KolonAdi, 'XXX') FROM TabloAdi WHERE KolonAdi = x
sorgumu çalıştırdığımda 0 rows geliyor yani herhangi bir satır gelmiyor. Bu durumda oluncada ISNULL fonksiyonu çalışmıyor. Sizce ISNULL yöntemini kullanarak MEVCUT SELECT SORGUSU İÇİNDE nasıl varsayılan değer atayabilirim.
(MSSQL Exp. 2016)
@mehmetugur Merhaba
SELECT TOP 1 ile veri çektiğiniz için ilk kaydı getirmekte ve onda KolonAdi satırı boş olabilir.
WHERE KolonAdi = x şartında verdiğiniz koşulun karşılığı tabloda olmayabilir.
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba
Saten sorumda da sizin dediğiniz durumu açıklamıştım. Şarta bağlı herhangi bir değer gelmiyor o yüzden de isnull haliyle çalışmıyor , bu durumda nasıl varsaylan bir değer atarım
Sorgunuzu aşağıdaki gibi düzenleyip tekrar dener misiniz ? İyi çalışmalar.
SELECT TOP 1 ISNULL(MIN(KolonAdi), 'XXX') FROM TabloAdi WHERE KolonAdi = x
Serkan bey WHERE ifadesine bağlı olarak hiçbir sonuç gelmiyor. Burada anahtar kelime hiç değer dönmeyen bir SELECT sorgusuna nasıl varsayılan değer atılır onu bulamadım. Dediğiniz yöntem mevcut çıktıyı değiştirmeyecek
Merhaba @mehmetugur
Veri olmasa bile istediğiniz karakter gelsin istiyorsanız:
SELECT
ISNULL(
( SELECT
Adi
FROM Hasta.Hasta
WHERE State = 2
AND Adi LIKE 'deneme%') ,
List.Veri ) AlanAdi
FROM
( SELECT
'Boş' Veri) List ;
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba.
SELECT TOP 1 ISNULL(KolonAdi, 'XXX') FROM TabloAdi WHERE KolonAdi = x
sorgumu çalıştırdığımda 0 rows geliyor yani herhangi bir satır gelmiyor. Bu durumda oluncada ISNULL fonksiyonu çalışmıyor. Sizce ISNULL yöntemini kullanarak MEVCUT SELECT SORGUSU İÇİNDE nasıl varsayılan değer atayabilirim.
(MSSQL Exp. 2016)
ISNULL fonksiyonu bunu sağlamaz. Bunu hiçbir fonksiyon sağlamaz bu iş için @mehmetsucu beyin paylaştığı gibi bir yöntemle sonuca ulaşabilirsiniz ancak. Bu arada NULL eşit değildir olmayan veri.
@mehmetugur gönderdiğim sorguyu denediniz mi ? Hangi SQL Server sürümünü kullanıyorsunuz ?
Resultset boş geldiği için sorgunuz hiçbir şey getirmeyecektir.
Verdiğiniz kod doğru çalışıyor. Yalnız veri olmadığında ikinci SELECT sorgusu devreye girsin istiyorum lakin onda da Invalid column name hatası aldım. Sorguyu resim olarak ekledim.
Merhaba.
SELECT TOP 1 ISNULL(KolonAdi, 'XXX') FROM TabloAdi WHERE KolonAdi = x
sorgumu çalıştırdığımda 0 rows geliyor yani herhangi bir satır gelmiyor. Bu durumda oluncada ISNULL fonksiyonu çalışmıyor. Sizce ISNULL yöntemini kullanarak MEVCUT SELECT SORGUSU İÇİNDE nasıl varsayılan değer atayabilirim.
(MSSQL Exp. 2016)
ISNULL fonksiyonu bunu sağlamaz. Bunu hiçbir fonksiyon sağlamaz bu iş için @mehmetsucu beyin paylaştığı gibi bir yöntemle sonuca ulaşabilirsiniz ancak. Bu arada NULL eşit değildir olmayan veri.
Saten hepimiz aynı şeyi söylüyoruz, benim ISNULL ile halletmek istiyorum dememde ki amaç sp vb. yazmadan isnull un çalışma mantığı idi. Yani var ise olanı getir, yok ise şunu getir gibi
@mehmetugur gönderdiğim sorguyu denediniz mi ? Hangi SQL Server sürümünü kullanıyorsunuz ?
Bir önceki mesajımda da dediğim gibi WHERE ifadesine bağlı olarak değer gelmiyor. Sizin cümleciğinizde değer geliyor varsayılmış onun üzerinde min değeri alınmış, dediğiniz sorgu çözümün dışında
Bu arada herkese teşekkürler, bazı özel nedenlerden dolayı dönüşüm biraz geç oldu kusura bakmayın.
@mehmetugur gönderdiğim sorguyu denediniz mi ? Hangi SQL Server sürümünü kullanıyorsunuz ?
Bir önceki mesajımda da dediğim gibi WHERE ifadesine bağlı olarak değer gelmiyor. Sizin cümleciğinizde değer geliyor varsayılmış onun üzerinde min değeri alınmış, dediğiniz sorgu çözümün dışında
@mehmetugur bey, cevabınızdan sorguyu denemediğinizi anlıyorum. Sorguyu test edip sonucunu paylaşabilir misiniz ? Hangi Sql Server sürümünü kullandığınızı da belirtin lütfen.
Merhaba @SerkanAtes
2014 ve üzerinde isnull içinde min max fonksiyonları kullanıldığında satırda veri olmasa bile değer aktarır. min max da string değer kullanılabilir. Senin sorgun da doğru.
@mehmetugur , @SerkanAtes yazdığını da kullanabilirsin SELECT TOP 1 ISNULL(MIN(KolonAdi), 'XXX') FROM TabloAdi WHERE KolonAdi = x
@mehmetugur son hata aldığında List.veri değil List.TeslimTarihi yazman gerekiyor.
Sorunların bu denli güzel bir platformda çözüm bulması mutluluk verici. Herkesin emeğine sağlık.
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba @mehmetugur
Her iki query de çalışıyor. Fakat sizin kullanım şekliniz yanlış. Yazdığınız BakimZamani ve TeslimZamani alanlarında veri yok. Yani her ikisi de boş ise veri gelmez. Bu yüzden kendiniz bir alan ismi yazmalısınız ya da iç içe isnull kullanmanız gerekiyor.
Yani BakimZamani ve TeslimZamani alanlarında veri yok ise 'Veri Yok' yazmanız gerekiyor.
Ya da COALESCE fonksiyonu ile tek satırda yazabilirsiniz.
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Günaydın @mehmetsucu
Veri olmaz ise tabi ki de gelmez saten olmayan bir veriye ulaşma gibi durumumuz yok. 2 satırlık veri var ikisinde BakımZamanı dolu, Teslim Tarihi boş,
Günaydın @mehmetugur
Query mantığını yanlış kuruyorsun. İçeride veri yoksa gelecek satır bilgisini senin vermen gerekiyor ya da Coalesce ile farklı satırlara yönlendirmen lazım. Query ler doğru çalışıyor.
SELECT * FROM dbo.test ;
SELECT ISNULL(( SELECT CONVERT(VARCHAR(10),TeslimZamani,121) FROM dbo.test ) ,
List.Veri ) AlanAdi1
FROM ( SELECT 'Boş Alan' Veri) List ;
SELECT ISNULL(( SELECT CONVERT(VARCHAR(10),TeslimZamani,121) FROM dbo.test WHERE Id=10/* Id=10 diye bir satır yok*/) ,
List.Veri ) AlanAdi2
FROM ( SELECT 'Boş Alan' Veri) List ;
SELECT TOP 1 ISNULL(CONVERT(VARCHAR(10),TeslimZamani,121), 'Boş Alan') AlanAdi3 FROM dbo.test
SELECT TOP 1 ISNULL(MIN(CONVERT(VARCHAR(10),TeslimZamani,121)), 'Boş Alan') AlanAdi4 FROM dbo.test WHERE Id=10 /* Id=10 diye bir satır yok*/
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************