У вас есть проблема с приоритетом оператора, AND
больше OR
, поэтому ваш запрос эффективен:
SELECT XPARG,XPARTBL,F38,F39 FROM T_TRANS1309
WHERE (T_TRANS1309.XPARG = N'b2365922-cb63-f976-4c1c-ccd50443b4d4' AND T_TRANS1309.F39 IS NULL) OR T_TRANS1309.F39 >= CONVERT(NVARCHAR,getdate() ,102)
, что означает, что он также выбирает любую строку с датой> = сегодня.То, что вы хотите:
SELECT XPARG,XPARTBL,F38,F39 FROM T_TRANS1309
WHERE T_TRANS1309.XPARG = N'b2365922-cb63-f976-4c1c-ccd50443b4d4' AND (T_TRANS1309.F39 IS NULL OR T_TRANS1309.F39 >= CONVERT(NVARCHAR,getdate() ,102))