允许 Oracle 中的多个值用于 SSRS 报告

Allow muliple values in Oracle for an SSRS report

我有一个获取数字 1 到 10 的查询。此查询正在 SSRS 报告中用于筛选出更大的数据集。

我想知道我们将如何获得 'ALL' - 参数属性选项中有一个 'allow multiple values' 选项,但我认为这只是将数字连接在一起所以是 (1,2 ,3 等),因此我不确定 Oracle 能否处理这个问题。

我获取 ContractTypes -1 到 10 的查询:

WITH ContractTypes (ContractType) AS (
                         SELECT -1 FROM dual
                         UNION ALL
                         SELECT ContractType+1 
                         FROM ContractType
                         WHERE ContractType< 10)
SELECT *
FROM ContractTypes 

我查询获取另一个数据集中的合同类型。我不确定是否需要将其更改为拆分字符串以处理多个值。我正在使用 -1 来处理空值。

SELECT *
FROM Employee
WHERE contract_type NVL(CONTRACT_TYPE, -1) = :contract_type

我正在使用 visual studio 2008 构建我的报告,并使用 pl/sql 开发我的 oracle 代码。

提前感谢大家的帮助:)

在使用整数处理 ALL 时,我通常使用 0 来表示 ALL 以保持简单。

SELECT *
FROM Employee
WHERE (
    contract_type NVL(CONTRACT_TYPE, -1) = :contract_type
    OR :contract_type = 0
    )

如果您不想要 NULL,则需要将 OR 更改为

SELECT *
FROM Employee
WHERE (
    contract_type NVL(CONTRACT_TYPE, -1) = :contract_type
    OR (CONTRACT_TYPE IS NOT NULL AND :contract_type = 0)
    )

这是我的解决方法;创建第二列,将 NULLALL 分别添加到 -1 和 -2。然后我们使用SSRS中的DisplayFigure列作为过滤器。

    SELECT
           ContractType, 
           CASE WHEN  ContractType = -2 THEN 'All'
                WHEN ContractType = -1 THEN'Null'
                ELSE to_Char(ContractType)  
                END AS DisplayFigure
    FROM ContractTypes