首页 > 解决方案 > 将 case/when 插入到 select 语句中

问题描述

在我的消息正文中读取时,我试图将@ClientID(int) 更改为字符串。这是我到目前为止所拥有的:

BEGIN
  SELECT @message = 'error'
  SELECT @message = @message + 'client:' + @ClientID + char(13)
END

我如何在这个 select 语句中输入一个案例来阅读?

CASE
  WHEN @ClientID = 1 THEN 'McDonalds' 
  WHEN @ClientID = 2 THEN 'BK'
  WHEN @ClientID = 3 THEN ....etc
END

标签: sqllinqcase

解决方案


即使您可以编写一个巨大的CASE子句,就像您正在做的那样,我强烈建议您在表格中使用一个简单JOINclient...假设您有一个。就像是:

select m.message, c.name
  from message m
  join client c on m.client_id = c.id
  where c.id = @ClientID

这更短,工作量更少,更不容易出错,并且易于阅读。


推荐阅读