SQL Server 2008: SQL-запрос с использованием IF в столбцах - PullRequest
1 голос
/ 07 марта 2011

У меня есть такой столбец в моем запросе к SQL Server 2008

CONVERT(VARCHAR(10),C.HACIZ_TAR,103) AS 'HACİZ TARİHİ'

В этом столбце значение некоторых данных равно 01/01/1900.

Что мне нужно, если этот столбецзначение 01/01/1900, затем получить null вместо 01/01/1900

Как я могу это сделать?

Это полная часть выбора в моем sql

SELECT  B.HESAP_NO, A.TEKLIF_NO1 + '/' + A.TEKLIF_NO2 AS 'TEKLIF',
B.MUS_K_ISIM, CONVERT(VARCHAR(10),A.ISL_TAR,103) AS 'TARIH',
SUM(ISNULL(CAST(A.ODENEN_ANAPARA AS FLOAT),0)+ISNULL(CAST(A.FAIZ AS FLOAT),0)+
    ISNULL(CAST(A.BSMV AS FLOAT),0)+ISNULL(CAST(A.GECIKME_FAIZ AS FLOAT),0)+
    ISNULL(CAST(A.GECIKME_BSMV AS FLOAT),0)) AS 'YATAN', 
    (CASE WHEN B.DOVIZ_KOD = 21 THEN 'EUR' WHEN B.DOVIZ_KOD = 2 THEN 'USD' WHEN B.DOVIZ_KOD = 1 THEN 'TL' END) AS 'KUR',
    D.AVUKAT, CONVERT(VARCHAR(10),C.ICRA_TAR,103) AS 'İCRA TARİHİ', CONVERT(VARCHAR(10),C.HACIZ_TAR,103) AS 'HACİZ TARİHİ'

Ответы [ 2 ]

3 голосов
/ 07 марта 2011

Используйте оператор NULLIF:

nullif(CONVERT(VARCHAR(10),C.HACIZ_TAR,103), '01/01/1900') AS 'HACİZ TARİHİ' 
1 голос
/ 07 марта 2011

не уверен, как конвертация работает на SQL Server, но попробуйте это:

   (CASE
     WHEN CONVERT(VARCHAR(10), A.ISL_TAR, 103) = '01/01/1900' THEN
       NULL
     ELSE CONVERT(VARCHAR(10), A.ISL_TAR, 103)
    END) AS 'TARIH'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...