はT-SQLでは1 = 1がFalseを返します - なぜですか?
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
これは私が自分のアプリケーションに持っていたLINQのツーエンティティクエリのラフなSQL変換した以下のスニペットをご覧ください。 InvoicingActivityStartDayための2つの可能な値は、このような行の1と20
このスニペットの結果である:それは第二行の等しくない返す理由
InvoicingActivityStartDay Column1 Column2
1 1 NOT EQUAL
20 1 NOT EQUAL
私は理解し、しかし、なぜ1 = 1の最初の行では等しくないのでしょうか?
「InvoicingActivityStartDay」のタイプは何ですか? –
@FrédéricHamidiNVARCHAR(2);数字だけを保持します。 – FMFF
その文字列が実際に '' 1 ''ではなく' '1''であることをチェックしましたか? (末尾のスペースに注意してください) –