HARRY's Tech Blog

 

case when语句后的表达式

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
    

 

posted on 2015-04-25 19:20  Harry Han  阅读(1806)  评论(0编辑  收藏  举报

导航