Sql SSRS中的空格

Sql SSRS中的空格,sql,tsql,reporting-services,ssrs-2008,whitespace,Sql,Tsql,Reporting Services,Ssrs 2008,Whitespace,我在SSRS中编写的查询中有一部分无法正常工作。情况是,我试图创建一个下拉参数,其中包含一列中的值列表,我们称之为Column5。问题是该列中的某些行是空的;它们不是空的,只是完全由空格组成。因此,它们不会显示在参数的值列表中,这意味着这些行将被完全忽略 我想做的是这样的: 选择[…填充…]CASE WHEN(RTRIM(LTRIM(Column5))='',然后选择'None'其他Column5结束为ColumnAlias 我尝试了上面的方法和一些变体,但似乎没有任何效果 注意:我将上面的查询

我在SSRS中编写的查询中有一部分无法正常工作。情况是,我试图创建一个下拉参数,其中包含一列中的值列表,我们称之为Column5。问题是该列中的某些行是空的;它们不是空的,只是完全由空格组成。因此,它们不会显示在参数的值列表中,这意味着这些行将被完全忽略

我想做的是这样的:
选择[…填充…]CASE WHEN(RTRIM(LTRIM(Column5))='',然后选择'None'其他Column5结束为ColumnAlias

我尝试了上面的方法和一些变体,但似乎没有任何效果

注意:我将上面的查询粘贴到SQL Server中,它运行得很好。SQL Server和SSR处理空白的方式似乎有所不同

编辑:显然部分问题在于SQL不会基于重命名的列进行筛选。我将查询粘贴到SQL Server中,并包括
其中Column5='None'
。它没有返回任何行,即使在第5列中有几千行清楚地表示“无”。似乎我必须重新思考我的整个方法。

试试这个:

SELECT [...stuff...] CASE WHEN LEFT(Column5, 1) = ' ' or RIGHT(Column5, 1) = ' ' THEN 'None' ELSE Column5 END AS ColumnAlias

原因是,当指定条件时,将忽略尾随空格。换句话说,“HI”、“HI”和“HI”(后面有空格)都被认为是相等的。

我知道这是一篇较老的帖子,但以防万一你仍然有麻烦

我已经看到,在不同的系统中,空字符串或空格字符串的处理和标识似乎有所不同(Access vs SSRS vs T-SQL在SSMS中运行)。我发现使用len()函数在任何地方都非常有效。我通常会这样做:

Case 
    When ISNULL(LEN(LTRIM(RTRIM([Column5]))),0) = 0 
        Then 'None' 
        Else [Column5] 
    End
这样,在删除所有间隔符后,它会主动查找和计算字符数

一旦确定了这些字段,就可以将整个查询(假设不太复杂)放入CTE并使用最终产品。这有时比在数据被导出时尝试处理数据更容易

With Selected_Records as (
Select ...
...
)
Select Distinct Column5

From Selected_Records
然后,您可以在派生数据之上添加任何其他条件、排序或聚合,而不会妨碍其派生。在CTE中的查询变得非常复杂或使用了许多参数(这些都是轶事性的观察)之前,这种方法工作得非常好


希望这对其他人有所帮助。

尝试使用NULLIF(列“”),然后过滤掉空值。我尝试了以下方法:
CASE WHEN(Column5不为NULL),然后“None”other Column5结束为ColumnAlias
。它似乎不起作用。请使用
CASE当NULLIF(column5',)为NULL时,则“None”其他column5 END
。它应该work@AgentSQL那也没用。它仍然过滤掉空白值而不是重命名它们。如果需要替换空白值,那么也可以使用替换。你试过了吗?