一个很简单的带有CASE的查询语句
,CASE PH.DocumentState WHEN 0 THEN '0-Draft'
WHEN 10 THEN '10-In review'
WHEN 20 THEN '20-Rejected'
WHEN 30 THEN '30-Approved'
WHEN 35 THEN '35-In external review'
WHEN 40 THEN '40-Confirmed'
WHEN 50 THEN '50-Finalized'
ELSE '' END AS DocumentState
在本地服务器毫无问题。然而通过link server查询的时候遇到了错误
Msg 8180, Level 16, State 1, Line 1
Statement(s) could not be prepared.
Msg 125, Level 15, State 4, Line 1
Case expressions may only be nested to level 10.
才知道CASE表达式在使用link server的时候有限制,且没法解决这个限制。
解决方法一是弃用CASE,改用join键值关系表来进行查询。方法二是使用OPENROWSET而不是link server.