Select 参数,如果满足条件

Select parameters if a condition is fulfilled

如果满足我的条件,我想 select 特定元素。请看下面我的代码。如何 select CASE 子句中的数据?我的方法不行

CREATE PROCEDURE [dbo].[GetUsers]
@firstName varchar(100) = '',
@isCounterSelected int,
@countries dbo.tvp_stringArray READONLY
AS

BEGIN
    SET NOCOUNT ON;

SELECT [PK_UserID] AS Id
      ,[UserNickName]
      ,[description]
      ,CASE
      WHEN @isCounterSelected = 1 THEN (NULL AS MCount, NULL AS GCount, NULL AS CCount)
      ELSE ''
      END
        FROM [dbo].[User_Existing]      
        WHERE (@firstName NOT LIKE '' AND firstName LIKE @firstName + '%')
        AND Country IN (SELECT inputValue FROM @countries)

我认为这会修复语法错误:

   CREATE PROCEDURE [dbo].[GetUsers]
@firstName varchar(100) = '',
@isCounterSelected int,
@countries dbo.tvp_stringArray READONLY
AS

BEGIN
    SET NOCOUNT ON;

SELECT [PK_UserID] AS Id
      ,[UserNickName]
      ,[description]
      ,CASE
      WHEN @isCounterSelected = 1 THEN NULL 
      ELSE ''
      END AS MCount
      ,CASE
      WHEN @isCounterSelected = 1 THEN NULL 
      ELSE ''
      END AS GCount 
      ,CASE
      WHEN @isCounterSelected = 1 THEN NULL AS CCount
      ELSE ''
      END AS CCount
        FROM [dbo].[User_Existing]      
        WHERE (@firstName NOT LIKE '' AND firstName LIKE @firstName + '%')
        AND Country IN (SELECT inputValue FROM @countries)
END