[英]Postgres CASE statement not working in SQL Server
我已经在postgres中(在PGAdmin上)编写了一个查询,并希望将其放在SSMS2012中以用于报告目的,但是它似乎不允许CASE语句,这是我的查询:
SELECT *
FROM OPENQUERY (POSTGRESQL,
'SELECT
Table1 AS Table_1,
CASE Table2
WHEN 75887 THEN ''1''
WHEN 75888 THEN ''2''
WHEN 75889 THEN ''3''
WHEN 75890 THEN ''4''
WHEN 75891 THEN ''5''
WHEN 75892 THEN ''6''
END AS Table_2,
DateTable1 AS DateTime
FROM SuperTable1 ')
而且我得到了错误:
链接服务器“ POSTGRESQL”的OLE DB提供程序“ MSDASQL”返回了消息“不支持请求的转换”。
Msg 7341,第16级,状态2,第1行
无法从链接服务器“ POSTGRESQL”的OLE DB提供程序“ MSDASQL”获取列“ [MSDASQL] .table_2”的当前行值。
我注意到,如果删除整个case语句,则检索SELECT
语句的列中的数据没有问题,并且整个事情(包括CASE
语句)在PGAdmin中都可以正常工作。
尝试简化查询
运行4个独立的查询,以确定哪个是您遇到的问题。 也尝试使用1
代替''1''
SELECT Table1 AS Table_1
SELECT DateTable1 AS DateTime
SELECT
CASE Table2
WHEN 75887 THEN 1
END AS Table_2
SELECT
CASE Table2
WHEN 75887 THEN ''1''
END AS Table_2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.