我有一个sql表,其中有一列"键入"。它具有值A,B,C,D 我正在编写一个存储过程,其中的类型是in参数@type @type可以有值' A'或者' A,B,C'或者'所有'基于屏幕上的用户选择。这意味着用户可以选择单个,多个或所有选项 我需要在列#34;类型"。
上使用条件从我的表中过滤数据我想要类似下面的内容
Locale locale = new Locale("hi"); // where 'hi' is Language code, set this as per your Spinner Item selected
Locale.setDefault(locale);
Configuration config = getBaseContext().getResources().getConfiguration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
我编写了一个split函数,它以表格格式返回值。
选择ALL后,应返回整个表格。选择特定类型时,只应返回那些类型。
我正在使用sqlserver 2012 请帮助!!
答案 0 :(得分:3)
试试这个
SELECT *
FROM maintable
WHERE @type ='ALL' OR
(@type <>'ALL' AND TYPE IN (SELECT data FROM SplitString(@type,','))
答案 1 :(得分:0)
你可以这样做:
if @type ='ALL'
set @type ='A,B,C,D'
select * from maintable where
type in (select data from SplitString(@type, ','))
答案 2 :(得分:0)
您可以使用IF
:
IF @type ='ALL'
SELECT *
FROM MainTable
ELSE
SELECT *
FROM MainTable
WHERE Type IN (SELECT data FROM SplitString(@type,',') )