SQL中Case When语句的语法如下
Simple
CASE expression:
CASE input_expression
WHEN when_expression
THEN result_expression
[ ...n ]
[ ELSE else_result_expression ]
END
Searched CASE expression:
CASE
WHEN Boolean_expression
THEN result_expression
[ ...n ]
[ ELSE else_result_expression ]
END
其中result_expression按理说应该是任意有效的表达式,查询了msdn也是如此说。可今天用这个语句时,想在when后面写一个简单的select语句,居然报错了。
试了许久,后来想要不加个括号试试,然后就成功了。
CASE od.ObjectType
WHEN 1 THEN(
SELECT TOP 1 StructureName
FROM TBL_StationStructure
WHERE StructureType
=2)
WHEN 2 THEN (
SELECT TOP 1 StructureName
FROM TBL_StationStructure
WHERE StructureId
=od.ObjectId)
END
转载于:https://www.cnblogs.com/harryhan1983/p/4456429.html
相关资源:数据结构—成绩单生成器