Когда у меня есть оператор условного выражения в моем заявлении WHERE
, то NULL
s автоматически не включены?Операторы NULLS в WHERE - SQL
Например, в запросе с GROUP BY
утверждением, что имеет линию FROM @data WHERE Trade_Amt > 0 AND Execution_Code != 'EXPIRATION'
, Execution_Code
значения, которые null
не будут включены в сумму.
Если я включаю OR Execution_Code IS NULL
, тогда я получаю больше записей, чем ожидалось.
Единственная работа вокруг, которую я нашел, изменяет значения null
указанному символу. Это мой единственный вариант или я что-то упускаю?
Пример:
Таблица @data
Trade_Amt Execution_Code Trade_Px
-----------------------------------------
4 XVD 5
-4 NULL 5
4 NULL 5
5 EXPIRATION 5
Запрос:
SELECT
SUM(Trade_Amt) AS [Trade_Amt],
dbo.ConcatStr(DISTINCT Execution_Code , ',', 'ASC') AS [Execution_Code],
Trade_Px
--above line concatenates execution code strings together during summation
FROM
@data
WHERE
Trade_Amt > 0 AND Execution_Code != 'EXPIRATION'
GROUP BY
Trade_Px
Ожидаемый результат:
Trade_Amt Execution_Code Trade_Px
--------------------------------------------
8 XVD 5
То, что я на самом деле получить:
Trade_Amt Execution_Code Trade_Px
--------------------------------------------
4 XVD 5
Зачем отвечать _0_? поскольку предложение where включает в себя только 'trade_amt> 0'? –
Также включите запрос с 'null, который не работает для вас. –
Его суммирование по Trade_Amt. – pavbagel