我想在Pervasive中使用案例语句,因为它也缺乏对Coalesce的支持。但似乎Pervasive 8也缺乏对Case语句的支持。所以我想检查是否有替代解决方案来解决我的问题。SELECT top 100STOCKTR.PHEADPR,'' as tom,case Pheadpr.BLNO when <> '' then Pheadpr.BLNO else STOCKTR.PHEADPR end as BLNO,Pheadpr.custno,Pheadpr.cust_name,Pheadpr.company_name,Pheadpr.company_city,Pheadpr.invno,Pheadpr.curr_code,STOCKTR.RECID,STOCKTR.ARTNO,STOCKTR.DATE,STOCKTR.QTY_PCS,STOCKTR.PRICE_SEK_PCS,STOCKTR.ULANDFROM STOCKTR INNER JOIN PHEADPRON PHEADPR.NO = STOCKTR.PHEADPRWHERE STOCKTR.TRCODE='02' AND STOCKTR.PHEADPR <> '0'order by STOCKTR.DATE desc所以我的问题集中在选择语句的第四行case Pheadpr.BLNO when <> '' then Pheadpr.BLNO else STOCKTR.PHEADPR end as BLNO我希望这导致1列输出。在普及型8中是否有解决此问题的方法,以便我可以从查询中获得类似案例的行为?作为旁注,我正在使用JDBC驱动程序并从Java程序进行查询。 最佳答案 您可以使用IF语句。语法为: IF(搜索条件,表达式,表达式)因此,在您的情况下,您可能需要以下内容: IF(Pheadpr.BLNO '',Pheadpr.BLNO,STOCKTR.PHEADPR)为BLNO如果有可能,您应该考虑升级到PSQL V11的当前版本,该版本支持CASE和COALESCE语句以及受支持的PSQL版本。 10-05 23:18