允许在Oracle中为SSRS报告提供多个值



我有一个查询,它获取数字1到10。SSRS报告中使用此查询来筛选较大的数据集。

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

我的查询以获得合同类型-1到10:

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

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

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

我正在使用visualstudio2008为我的oracle代码构建我的报告和pl/sql开发人员。

提前感谢大家的帮助:(

当使用整数处理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 

最新更新