我有一张名字和年龄的桌子。我试图理解case语句的使用,当我尝试执行以下代码时,我遇到错误。它是一个简单的程序,可以显示30岁以上人的姓名和年龄,如果他们在下面。:
Select age,
case
when age>30 then Name
when age<30 then age
end
from tblPerson
为什么我收到错误:转换nvarchar值时转换失败&#39; Sam&#39;数据类型int。
答案 0 :(得分:3)
名称和年龄不是同一数据类型。您需要CAST
年龄到您拥有的任何数据类型。
Select age,
case
when age>30 then Name
when age<30 then CAST(age AS VARCHAR(3))
end
from tblPerson