我有一个名字和年龄的表格。我试图理解case语句的用法,当我尝试执行以下代码时出现错误。它是一种简单的程序,如果它们低于:关于case语句的常规sql
Select age,
case
when age>30 then Name
when age<30 then age
end
from tblPerson
为什么会出现错误,将显示以上的人30岁的姓名和年龄:转换为nvarchar值“萨姆”时转换失败数据类型int。
是否因为sql查询产生的列只能显示特定类型的数据?就像我只能在结果列中显示年龄或姓名一样? – TotalGadha
另外:尽管微软无法理解这个想法([叹气](https://connect.microsoft.com/SQLServer/feedback/details/1546816/remove-case-statement-from-transact-sql-documentation)。 ),'case'是_expression_,而不是_statement_。 – HABO