1

Pervasive では、Coalesce もサポートされていないため、case ステートメントを使用したいと考えています。しかし、Pervasive 8 では Case ステートメントもサポートされていないようです。

そのため、私の問題に対する別の解決策があるかどうかを確認したかったのです。

SELECT top 100 
STOCKTR.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.ULAND  
FROM STOCKTR INNER JOIN PHEADPR
ON PHEADPR.NO = STOCKTR.PHEADPR
WHERE STOCKTR.TRCODE='02' AND STOCKTR.PHEADPR <> '0'
order by STOCKTR.DATE desc

したがって、私の質問は、select ステートメントの 4 行目に焦点を当てています。

case Pheadpr.BLNO when <> '' then Pheadpr.BLNO else STOCKTR.PHEADPR end as BLNO

そして、これが1列の出力になるようにしたい。pervasive 8 でこれを回避して、クエリからケースのような動作を取得できるようにする方法はありますか?

補足として、私は JDBC ドライバーを使用し、Java プログラムからクエリを実行しています。

4

1 に答える 1

1

IF ステートメントを使用できます。構文は次のようになります。

IF ( 検索条件 , 式 , 式 )

したがって、あなたの場合、おそらく次のようなものが必要になるでしょう:

IF ( Pheadpr.BLNO <> '' , Pheadpr.BLNO, STOCKTR.PHEADPR) as BLNO

可能であれば、CASE ステートメントと COALESCE ステートメントの両方をサポートし、サポートされているバージョンの PSQL である最新バージョンの PSQL V11 へのアップグレードを検討する必要があります。

于 2012-03-15T13:11:56.410 に答える