Nasıl bir görünüm sütun NOT NULL yapmak için
Bir sütun yalnızca doğru ya da yanlış olmak istediğim yer bir görünüm oluşturmak için çalışıyorum. Ancak, ne yaparsam yapayım, SQL Server (2008) bit köşemi bir şekilde boş olabilir inanıyor gibi görünüyor.
Bir tablo "" sütunu ile "Durum" INT, NULL
. Ürün aradım BİRAZ Ürün ise true sütun görünümü, Ürün her satır için bir satır dönmek istiyorum.Durum sütunu, bit alanı yanlış olmalı, yoksa 3, eşittir.
Örnek SQL
SELECT CAST( CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Ben görünüm olarak bu sorguyu kaydedin ve Nesne Explorer sütunlar bak, sütun HasStatus 4* *olarak ayarlanmıştır. Ama asla BOŞ olması gerekir. Orada bazı sihirli SQL hile bu sütun NOT NULL
zorlamak için kullanabilirsiniz.
Dikkat edin, eğer ben Kaldır CAST()
etrafında CASE
, sütun doğru ayarlayın NOT NULL
ama sonra sütunun türünü ayarlamak için INT
olmayan şeyi istiyorum. BuBIT
olmak istiyorum. :-)
CEVAP
Yeniden düzenlenmesi sorgunuzu biraz istediğinizi elde edebilirsiniz. Hile ISNULL
SQL Server sonuç değeri asla NULL
olabilir bunu anlamak için önce dışarıda olmalı.
SELECT ISNULL(CAST(
CASE Status
WHEN 3 THEN 1
ELSE 0
END AS bit), 0) AS HasStatus
FROM dbo.Product
Aslında bu yararlı bir nedeni ORM kullanırken ve elde edilen değeri null olabilecek bir tür eşlenen istemiyorum. Eğer uygulama muhtemelen boş olarak hiç değer görürse, her şey etrafında daha kolay yapabilirsiniz. Daha sonra özel durumlar, vb null işlemek için kod yazmak zorunda değilsiniz.
Nasıl Raylar bir geçiş değil null null...
Nasıl özel bir görünüm Kakao Otomatik ...
Nasıl SQL Server için büyük bir tablo ...
Nasıl NOT null kısıtlaması MySQL5 varo...
Nasıl Server tablo sütun olup olmadığı...