SORU
24 ŞUBAT 2010, ÇARŞAMBA


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. BuBITolmak istiyorum. :-)

CEVAP
24 ŞUBAT 2010, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • taliajoy18

    taliajoy18

    12 Temmuz 2011