У меня есть этот запрос
DECLARE @LastDesignKey INT = (SELECT TOP 1
MAX([DesignKey])
FROM [Design] AS [D]
INNER JOIN [DesignGroup] AS [DG] ON [D].[DesignGroupId] = [DG].[DesignGroupId]
INNER JOIN [DesignType] AS [DT] ON [D].[DesignTypeGuid] = [DT].[DesignTypeGuid]
WHERE [D].[ParentDesignKey] = @ParentDesignKey
AND [DT].[Abbreviation] = @DesignTypeName
AND [DG].[ProjectKey] = @ProjectKey)
Чтобы проверить его, я добавил статические переменные:
DECLARE @ParentDesignKey INT = NULL,
@DesignTypeName VARCHAR(266) = 'BD',
@ProjectKey INT = 4395
DECLARE @LastDesignKey INT = (SELECT TOP 1 MAX([DesignKey])
FROM [Design] AS [D]
INNER JOIN [DesignGroup] AS [DG] ON [D].[DesignGroupId] = [DG].[DesignGroupId]
INNER JOIN [DesignType] AS [DT] ON [D].[DesignTypeGuid] = [DT].[DesignTypeGuid]
WHERE [D].[ParentDesignKey] = @ParentDesignKey
AND [DT].[Abbreviation] = @DesignTypeName
AND [DG].[ProjectKey] = @ProjectKey)
SELECT @LastDesignKey
Как вы можете видеть в моем предложении where, у меня есть WHERE [D].[ParentDesignKey] = @ParentDesignKey
, но@ParentDesignKey
переменная иногда может быть нулевой, поэтому мой результат неверен, потому что для проверки нулевого вы не можете использовать:
НЕПРАВИЛЬНОЕ использование:
WHERE [D].[ParentDesignKey] = NULL
ПРАВИЛЬНОЕ использование
WHERE [D].[ParentDesignKey] IS NULL
Что я могу сделать в своем запросе для поддержки IS NULL и =?Привет