SQL Server:有条件地排除存储过程中的部分联合
我有这样一个存储过程(缩短到最低限度): 现在SQL Server:有条件地排除存储过程中的部分联合,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有这样一个存储过程(缩短到最低限度): 现在StyleNumber0是我的基本样式。不在另一个StyleNumber中的所有属性(StyleType)都源自StyleNumber0。但是现在,如果我在@StyleNumber设置为0时包含第二个选择(全局(基础)和app),则派生自的值是GA而不是G0A 因此,如果@StyleNumber为0,是否存在任何类型的条件,可以将此SELECT排除在联合之外?不太清楚您需要什么。假设您需要从第二次查询中获取G0A,如果@StyleNumber=0,请
StyleNumber
0是我的基本样式。不在另一个StyleNumber
中的所有属性(StyleType
)都源自StyleNumber
0。但是现在,如果我在@StyleNumber
设置为0时包含第二个选择
(全局(基础)和app),则派生自
的值是GA而不是G0A
因此,如果
@StyleNumber
为0,是否存在任何类型的条件,可以将此SELECT
排除在联合之外?不太清楚您需要什么。假设您需要从第二次查询中获取G0A
,如果@StyleNumber=0
,请将第二次选择查询更改为(-Global(Basis)(使用app)),如下所示
SELECT [StyleType],
[Value],
CASE @StyleNumber WHEN 0 THEN 'G0A' ELSE 'GA' END AS 'DerivedFrom'
FROM basis.dbo.GridStyle
--Rest fo the query
如果@StyleNumber=0
,则不从第二个select查询中选择任何记录,将案例
添加到WHERE子句
中
WHERE [Application] =
CASE @StyleNumber
WHEN 0 THEN 'This app does not exist' --Give unavailable @App number
ELSE @App
END
嘿,第一个正是我需要的。多谢各位@MarvinDickhaus没问题,我很乐意。
WHERE [Application] =
CASE @StyleNumber
WHEN 0 THEN 'This app does not exist' --Give unavailable @App number
ELSE @App
END