【发布时间】:2018-05-27 00:51:50
【问题描述】:
我有一个 sql 表,其中有一列“类型”。它具有 A、B、C、D 值。
我正在编写一个存储过程,其中类型是 in 参数 @type。
@type 可以根据用户在屏幕上的选择具有值“A”或“A、B、C”或“ALL”。这意味着用户可以选择单个、多个或所有选项。
我需要使用列“类型”的条件过滤表中的数据。
我想要类似下面的东西
select * from maintable where
( case when @type ='ALL' then 1=1) else
type in (select data from SplitString(@type,',')) end)
我编写了一个拆分函数,它以表格格式返回值。
When ALL is selected then the whole table should be returned.选择特定类型时,仅应返回那些类型。
我使用的是 sqlserver 2012。
请帮忙!!
【问题讨论】:
-
在你的
SP中使用IF怎么样
标签: sql-server case where-in