2012-03-15 15 views
1

Peralesiveのケースステートメントは、Coalesceもサポートされていないため、使いたいです。しかし、Pervasive 8にもCaseステートメントのサポートがないようです。Pervasiveのケースステートメント

私は問題に代わる解決策があるかどうかを確認したいと思っていました。

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 

だから私の質問は

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

を言うと私は、これは1列出力になりたい私のSELECT文で4行目に焦点を当てています。これを回避する方法がありますので、私のクエリから大文字小文字のような動作を得ることができますか?

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

答えて

1

IF文を使用できます。構文は次のようになります。

(検索条件、表現、表現が)

だから、あなたのケースでは、おそらくのようなもの必要になる場合:

IFを(Pheadpr.BLNO <> ''、Pheadpr.BLNO、STOCKTR.PHEADPR)BLNO

としてすべての可能で、あなたはCURへのアップグレードを検討する必要がある場合PSQL V11の有料版は、CASE文とCOALESCE文の両方をサポートしています。また、PSQLのサポートされているバージョンです。

関連する問題