繁体   English   中英

Postgres CASE语句在SQL Server中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM