2017-12-08 2 views
-1
SELECT Concat(npi.first_name, ' ', npi.middle_name, ' ', npi.last_name) AS othername, npi.nhif_persons_identity_serial, 
    CASE WHEN npi.person_identity_number IS NULL THEN '' WHEN Trim(npi.person_identity_number) = '' THEN '' 
    ELSE npi.contact_email END, npi.biometric_member_number, npi.birth_certificate_number, npi.national_id_number, CASE 
    WHEN npi.national_passport_number IS NULL THEN '' WHEN Trim(npi.national_passport_number) = '' THEN '' 
    ELSE npi.national_passport_number END, CASE WHEN npi.national_pin_number IS NULL THEN '' 
    WHEN Trim(npi.national_pin_number) = '' THEN '' ELSE npi.national_pin_number END, CASE 
    WHEN npi.contact_email IS NULL THEN '' WHEN Trim(npi.contact_email) = '' THEN '' ELSE npi.contact_email END, CASE 
    WHEN npi.address_district IS NULL THEN '' WHEN Trim(npi.address_district) = '' THEN '' ELSE npi.address_district 
    END, CASE WHEN npi.address_location IS NULL THEN '' WHEN Trim(npi.address_location) = '' THEN '' 
    ELSE npi.address_location END, CASE WHEN npi.address_county IS NULL THEN '' 
    WHEN Trim(npi.address_county) = '' THEN '' ELSE npi.address_county END, CASE WHEN npi.work_code IS NULL THEN '' 
    WHEN Trim(npi.work_code) = '' THEN '' ELSE npi.work_code END, CASE WHEN npi.address_physical IS NULL THEN '' 
    WHEN Trim(npi.address_physical) = '' THEN '' ELSE npi.address_physical 
    END 
    , npi.date_of_birth , npi.date_registered, npi.date_added,CASE WHEN npi.gender IS NULL THEN '' 
    WHEN Trim(npi.gender) = '' THEN '' ELSE npi.gender 
    END 
    , npi.first_name, npi.middle_name, npi.last_name, 

    CASE WHEN npi.marital_status IS NULL THEN '' 
    WHEN Trim(npi.marital_status) = '' THEN '' ELSE npi.marital_status 
    END 
    ,CASE WHEN npi.contact_address IS NULL THEN '' 
    WHEN Trim(npi.contact_address) = '' THEN '' ELSE npi.contact_address 
    END 
    ,CASE WHEN npi.contact_telephone IS NULL THEN '' 
    WHEN Trim(npi.contact_telephone) = '' THEN '' ELSE npi.contact_telephone 
    END 
    ,CASE WHEN npi.contact_mobile IS NULL THEN '' 
    WHEN Trim(npi.contact_mobile) = '' THEN '' ELSE npi.contact_mobile 
    END 
    ,CASE WHEN npi.mobile_contact_detail IS NULL THEN '' 
    WHEN Trim(npi.mobile_contact_detail) = '' THEN '' ELSE npi.mobile_contact_detail 
    END 
    ,CASE WHEN npi.temp_member_number IS NULL THEN '' 
    ELSE npi.temp_member_number 
    END 
    ,CASE WHEN npi.national_nhif_number IS NULL THEN '' 
    WHEN Trim(npi.national_nhif_number) = '' THEN '' ELSE npi.national_nhif_number 
    END 
    ,CASE WHEN nbci.facial_full_image IS NULL THEN '' 
    WHEN Trim(nbci.facial_full_image) = '' THEN '' ELSE nbci.facial_full_image 
    END 
    ,CASE WHEN nbci.facial_scaled_image IS NULL THEN '' 
    WHEN Trim(nbci.facial_scaled_image) = '' THEN '' ELSE nbci.facial_scaled_image 
    END 

FROM nhif_persons_identities npi 
    INNER JOIN nhif_biometric_cards nbc ON npi.nhif_persons_identity_serial = nbc.nhif_persons_identity_serial 
    INNER JOIN nhif_biometric_card_images nbci ON nbci.nhif_biometric_card_serial = nbc.nhif_biometric_card_serial 
WHERE npi.nhif_persons_identity_serial = 293182 

データベースからデータを選択していて、その列に値が含まれていない場合、「空白」が出力されます。クエリを実行すると、以下のエラーが発生します。検索しようとしたが、私が持っている答えはうまくいかない。 数字のエラーです。数値型の入力構文が無効です

ERROR: invalid input syntax for type numeric: "" 
LINE 35: ,CASE WHEN npi.temp_member_number IS NULL THEN '' 
                 ^

********** Error ********** 

ERROR: invalid input syntax for type numeric: "" 
SQL state: 22P02 
Character: 2318 
+2

エラーメッセージは終了します。空の文字列を数字として使用しようとしています。それは動作しません。ケース内のすべての値は同じタイプでなければなりません。 –

答えて

0

私は例えば、あなたがテキストにnumericをキャストすることを行うために、1234または空の文字列 ``、ゼロではないようないくつかの番号をeuther見るであろうように、テキストではなく、整数を取得しようとしますその後、

ELSE npi.temp_member_number::text

あなたはどこE、wanter結果は...

は(すべてではないテキストフィールドに適用され得ます空の文字列である場合は NULL

関連する問題