如何执行case或if语句如果databse字段=x,则设置storedprocvariable=y



我在Database1中有tableA,它有一列Genre(仅电影类型3)

在我的存储过程中,我想以某种方式执行case或if语句,其中它在database1.tableA中检查列Genre,并执行以下逻辑。。

if genre is horror then 
   set @newvariable = 1 
if genre is comedy then 
   set @newvarable = 2 
if genre is animated then 
   set @newvarible = 3 

有什么建议吗?

您可以使用case语句来获得您想要的

   SELECT 
      newvalue  = CASE WHEN genre = 'horror' THEN 1
                       WHEN genre = 'comedy' THEN 2
                       WHEN genre = 'animated' THEN 3
                  END
  FROM 
       tableA 

这将为您带来所需的价值。


更新

AS OP需要存储过程

CREATE PROCEDURE [dbo].[spnamehere]
@gameId INT
AS
BEGIN
   SET NOCOUNT ON;
   SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
   SELECT
       NewValue = CASE WHEN genre = 'horror' THEN 1
                       WHEN genre = 'comedy' THEN 2
                       WHEN genre = 'animated' THEN 3
                  END
   FROM 
       tablename
   WHERE
       gameId = @gameId
END

最新更新