2017-06-23 8 views
0

私は、名字、名字、会社名のカスタマーデータベースを移動しています。現在のデータには、最初に&姓または会社名のいずれかが表示されます内部を連結する

新しいデータベースには、氏名と姓を組み合わせる必要がある「プリント名」フィールドがあります。私はこの値を使う必要があります。

私は無駄な表現をCASE WHENで試してみました。

SELECT 
fstnam, 
lstnam, 
cmpnam, 
CASE 
    WHEN csttbl.cmpnam = null THEN fstnam||' '||lstnam 
    ELSE csttbl.cmpnam 
    END as PrintName 

FROM csttbl; 

は、上記のクエリで、私は唯一の印刷名欄の会社名・リターンではなく、組み合わせまず&姓を持っています。返されるデータはここで見ることができhttps://drive.google.com/open?id=0B31ZRmFSX6rMYmNOczlRNE1lM2c

すべてのヘルプは

答えて

0

私はcoalesce()を使用します。

SELECT fstnam, lstnam, cmpnam, 
     COALESCE(csttbl.cmpnam, fstnam|| ' ' || lstnam) as PrintName 
FROM csttbl; 
+0

会社名があれば姓と名がないので文字列全体を連結するとは思われませんでした。 COALESCEは私のためには機能していないようですが、以下も同様です SELECT fstnam、lstnam、cmpnam、 csttbl.cmpnam || fstnam || '' ||印刷名としてのlstnam FROM csttbl; –

1

変更

csttbl.cmpnam = null 

するためには理解されるであろう
csttbl.cmpnam is null 

RDBMSので、ヌルで=を使用して、任意の値にnullを比較することはできません無駄です。 NULLを比較するには、ほぼすべてのRDBMSで動作するis nullを使用する必要があります。

0

は、会社名があれば何もまず&姓がないとしてだけで文字列全体をconcatonating考えていませんでした。 COALESCEは私のためには機能していないようですが、以下のようになりました

SELECT 
fstnam, 
lstnam, 
cmpnam, 
csttbl.cmpnam||fstnam|| ' ' ||lstnam as PrintName 
FROM csttbl; 
関連する問題