Пожалуйста, посмотрите на фрагмент ниже
DEClaRE @p__linq__0 datetime
SET @p__linq__0 = '2012-02-01 00:00:00'
SELECT (STR( CAST( DATEPART (day, @p__linq__0) AS float)))
SELECT
InvoicingActivityStartDay,
(STR(CAST( DATEPART (day, @p__linq__0) AS float))),
CASE WHEN STR(CAST(DATEPART (day, @p__linq__0) AS float))= InvoicingActivityStartDay THEN 'EQUAL' ELSE 'NOT EQUAL' END
FROM INVOICEMETADATA
Это был грубый перевод SQL запроса Linq-to-Entities, который был у меня в приложении. Два возможных значения для InvoicingActivityStartDay: 1 и 20.
Этот фрагмент кода приводит к таким строкам:
InvoicingActivityStartDay Column1 Column2
1 1 NOT EQUAL
20 1 NOT EQUAL
Я понимаю, почему он возвращает НЕ РАВНО для второго ряда; но почему он возвращает НЕ РАВНО для первой строки, где 1 = 1?