Sql 字符串中的case语句

Sql 字符串中的case语句,sql,sql-server,string,sql-server-2012,case,Sql,Sql Server,String,Sql Server 2012,Case,基本上,我想在变量中存储一个字符串。但我想从其他地方获取一些内容,比如根据条件改变一些结果 示例。 我有3个学生——a、b、c。就在这里 DECLARE @intro nvarchar(80) = 'Hi!!! My Name is ' + CASE WHEN 'a' THEN 'Ashley' WHEN 'b' THEN 'Bernard' WHEN 'c' THEN 'Cassie' 但是加号给出了一个错误。我知道我可以通过上面提到的case语句生成另一个变量并为其添

基本上,我想在变量中存储一个字符串。但我想从其他地方获取一些内容,比如根据条件改变一些结果

示例。
我有3个学生——a、b、c。就在这里

DECLARE @intro nvarchar(80) = 'Hi!!! My Name is ' + 
          CASE WHEN 'a' THEN 'Ashley' WHEN 'b' THEN 'Bernard' WHEN 'c' THEN 'Cassie'
但是加号给出了一个错误。我知道我可以通过上面提到的case语句生成另一个变量并为其添加值,并将其放置在case语句中,而不是放置在case语句中,但我想知道是否有其他方法可以在不使用新变量的情况下实现这一点


提前感谢

您在案例陈述中没有比较任何内容。。。试着用这样的方法来比较你的学生和你想要检查的逻辑

DECLARE @student char(1) = 'b'
DECLARE @intro nvarchar(80) = 'Hi!!! My Name is '
SET @intro = @intro + 
                    CASE 
                        WHEN @student = 'a' THEN 'Ashley' 
                        WHEN  @student = 'b' THEN 'Bernard' 
                        WHEN  @student = 'c' THEN 'Cassie'
                        ELSE ''
                    END

SELECT @intro

当情况发生时,应将您的情况与2个值进行比较

DECLARE @student char(1) = 'c'
DECLARE @intro nvarchar(80) = 'Hi!!! My Name is ' + 
          CASE @student WHEN 'a' THEN 'Ashley' WHEN 'b' THEN 'Bernard' WHEN 'c' THEN 'Cassie' END 
SELECT @intro

当“a”没有测试任何东西时,请发布整个查询和错误消息
case-when'a'
-您正在测试什么以查看它是否为“a”?它的形式应该是
case when somefield='a'然后…
,或者
case somefield when'a'然后…
。如前所述,您必须使用
end
关键字来完成case语句。除非这是一个旨在让您学习如何使用
case
语句的类作业,否则我觉得这就像是一种代码味道。考虑创建一个名称表,执行一个<代码>内部连接< /代码>。
案例
的语法也是
案例时
。。。您缺少将在值时根据
进行测试的
内容。