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