【发布时间】:2017-01-08 11:09:42
【问题描述】:
基本上,我想将一个字符串存储在一个变量中。但是我想从其他地方取一些内容,比如根据条件改变一些结果。
示例。
我有 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 when 'a'不测试任何东西 - 你在测试什么看它是否是'a'?它应该采用case when somefield = 'a' then...或case somefield when 'a' then...的形式。如前所述,您必须输入end关键字才能完成 case 语句 -
除非这是一个旨在让您学习如何使用
CASE语句的课堂作业,否则这对我来说就像是代码异味。考虑创建一个名称表,使用INNER JOIN。CASE的语法也是CASE <something> WHEN... 您缺少将针对WHEN值进行测试的something。
标签: sql sql-server string sql-server-2012 case