如果您AddlDataFieldGroupId
不能爲零,那麼你不需要CASE
可言。這將做的工作:
SELECT Id
FROM dbo.OWL_AddlDataFields
WHERE CustomerId = @BaseCustomerId
AND AddlDataFieldCategoryId = @AddlDataFieldCategoryId
AND AddlDataFieldGroupId = @AddlDataFieldGroupId
AND Name = @DataFieldName
如果AddlDataFieldGroupId
可以爲零,但不能爲負,你可以這樣做:
SELECT Id
FROM dbo.OWL_AddlDataFields
WHERE CustomerId = @BaseCustomerId
AND AddlDataFieldCategoryId = @AddlDataFieldCategoryId
AND AddlDataFieldGroupId = CASE WHEN
@AddlDataFieldGroupId = 0 THEN -1 ELSE @AddlDataFieldGroupId END
AND Name = @DataFieldName
或者,這將無論什麼AddlDataFieldGroupId
可以工作:
SELECT Id
FROM dbo.OWL_AddlDataFields
WHERE CustomerId = @BaseCustomerId
AND AddlDataFieldCategoryId = @AddlDataFieldCategoryId
AND AddlDataFieldGroupId = CASE WHEN
@AddlDataFieldGroupId = 0 THEN AddlDataFieldGroupId - 1 ELSE @AddlDataFieldGroupId END
AND Name = @DataFieldName
注意:所有這些解決方案假定AddlDataFieldGroupId
不能是NULL
。