SSRS报告 - 什么是NULL?

时间:2013-06-05 16:21:47

标签: sql-server-2008 visual-studio-2008 reporting-services null

初学者会问你:在SSRS报告(Visual Studio 2008)中,当一个接受Null值的参数设置为Null时,它实际包含什么?

NULL
''

还是其他什么?

特别是我很好奇2008 R2在收到该参数时会看到什么。

2 个答案:

答案 0 :(得分:0)

如果将NULL值传递给参数,那么它将包含它。但是在SSRS表达式中,NULL被称为“Nothing”,如:

IsNothing(Parameter.Value)

Parameter.Value Is Nothing

答案 1 :(得分:0)

NULL仅表示尚未分配值。所以缺乏价值而不是实际价值。

特别是,空字符串不是Null,它是一个已经赋值为零长度字符串的字符串,这与没有值的字符串不同。数值相同 - Null并不意味着0这是一个特定的数值,它意味着根本没有分配任何值。例如,如果你有一个名为Siblings的字段,这是一个人拥有的兄弟姐妹的数量,如果该字段有0,我们就会知道他们没有兄弟姐妹;但是,如果该字段为Null,则表示我们不知道他们有多少兄弟姐妹。

对于布尔值,可以为空可将它们从具有可能值TrueFalse的二元运算符转换为具有可能值TrueFalse和{的三元运算符{1}}。

评估Unknown的内容始终为false,因此您无法使用Null对其进行评估,您必须使用=,如下所示:IS

如果参数为WHERE Something IS Null,您希望所有内容都使用null参数的好方法是在Null子句中使用null测试和值测试:

WHERE

如果参数没有值(即WHERE ((@Param IS Null) OR (SomeField = @Param)) ),你将获得一切;否则,如果参数有值,它将返回那些等于Null的行。