初学者会问你:在SSRS报告(Visual Studio 2008)中,当一个接受Null值的参数设置为Null时,它实际包含什么?
NULL
''
还是其他什么?
特别是我很好奇2008 R2在收到该参数时会看到什么。
答案 0 :(得分:0)
如果将NULL值传递给参数,那么它将包含它。但是在SSRS表达式中,NULL被称为“Nothing”,如:
IsNothing(Parameter.Value)
Parameter.Value Is Nothing
答案 1 :(得分:0)
NULL
仅表示尚未分配值。所以缺乏价值而不是实际价值。
特别是,空字符串不是Null,它是一个已经赋值为零长度字符串的字符串,这与没有值的字符串不同。数值相同 - Null
并不意味着0
这是一个特定的数值,它意味着根本没有分配任何值。例如,如果你有一个名为Siblings
的字段,这是一个人拥有的兄弟姐妹的数量,如果该字段有0
,我们就会知道他们没有兄弟姐妹;但是,如果该字段为Null
,则表示我们不知道他们有多少兄弟姐妹。
对于布尔值,可以为空可将它们从具有可能值True
和False
的二元运算符转换为具有可能值True
,False
和{的三元运算符{1}}。
评估Unknown
的内容始终为false,因此您无法使用Null
对其进行评估,您必须使用=
,如下所示:IS
。
如果参数为WHERE Something IS Null
,您希望所有内容都使用null参数的好方法是在Null
子句中使用null测试和值测试:
WHERE
如果参数没有值(即WHERE ((@Param IS Null) OR (SomeField = @Param))
),你将获得一切;否则,如果参数有值,它将返回那些等于Null
的行。