【发布时间】:2015-06-10 17:58:26
【问题描述】:
我需要在值都是 CSV 的列上允许多选。我一直在使用LIKE 语句和单个选择参数,但我需要该参数来允许多选。我的一个想法是为每个参数值(只有 6 个)创建列,然后使用 CASE 语句将它们设置为 True/False,然后我在想如果选择了 Type A,那么它将查看ColumnA,如果他们也选择Type B,那么它也会查看ColumnB。
整个查询非常大,但这是我正在处理的摘录
CASE WHEN T1.Types LIKE '%Type A%' THEN 1 ELSE 0 END AS TypeA
这是在 CTE 中,在我的最终选择语句中它仅引用 TypeA 等。最终查询应该是这样的
SELECT ID, Types, TypeA, TypeB, TypeC
FROM TableA
WHERE Types IN [parameter]
以下是“类型”列的一些示例数据。
|________Types________|
| TypeA |
| TypeA, TypeC |
| TypeA, TypeB, TypeC |
我怎样才能让它工作而又不让它变得太复杂?我知道如果我想为每种类型设置 6 个不同的参数,然后为每个类型设置一个 True/False,这很容易实现,但我怎样才能让它成为一个带有单个参数的多选呢?
【问题讨论】:
-
如果您想在不复杂的情况下完成这项工作,请将您的数据标准化。
标签: sql-server sql-server-2008 reporting-services ssrs-2008