【发布时间】:2011-03-08 10:19:37
【问题描述】:
有一个表Category(ID、title、description、parentID、friendlyUrl、categoryTypeID)。 字段值 parentID 可以为空。
如果@ParentID = null,我如何选择只有 parentID =null 的行。
declare @ID int =null
declare @FriendlyUrl nvarchar(30) = null
declare @ParentID int = null
declare @CategoryTypeID int = 0
select * from Category
where
(@ID is null or ID = @ID)
and (@FriendlyUrl is null or FriendlyUrl=@FriendlyUrl)
and (@ParentID is null or ParentID=@ParentID)
and (@CategoryTypeID is null or CategoryTypeID=@CategoryTypeID)
如果@ParentID = 指定的 int 值,则此查询将选择所有具有 parentID=@ParentID 的行(这是正确的)。
但是如果@ParentID =null 它会选择所有行(这是不对的)。
【问题讨论】:
标签: sql sql-server tsql