2016-11-29 94 views
0

我在我的Netezza有兩個表(ABC,CDE)。我需要編寫下面的case語句來顯示值。如何寫案例的說明

表和列:

表名稱ABC:
柱:(ID(PK),商品說明)

表名CDE:
列:(值(如1,2,3) ,ID(FK))

select case when value Is Not Null then 'CALIFORNIA' else ID end 
from CDE 

NZ顯示PG的atoi(我認爲這是無法做到轉換爲ID爲varchar)

如何使用NZ編寫CASE?

+0

也許簡單地把ID爲varchar。所以'當值不是空的情況下,然後強制轉換('CALIFORNIA'作爲varchar(50))否則強制轉換(Id爲varchar(50))結束'pg atoi:「錯誤是對字符執行隱式轉換的結果字段(varchar/char),同時與數字字段或值進行比較。「 – xQbert

+0

表ABC在這種情況下有什麼作用? – ScottMcG

回答

0
SELECT 
    CASE 
     WHEN value IS NOT NULL THEN 'CALIFORNIA' 
     ELSE TO_CHAR(ID) 
    END 
FROM CDE; 
+0

嗨流氓,我認爲neteeza這將返回CHAR(int)函數但不返回數據。 – Kumar

0

這樣做:

CAST(Id AS VARCHAR(50)) 

|  Function   | Return Type |  Description   | 
====================================================================== 
| to_char(int, text) |  text  | converts integer to string | 

試試這個:

SELECT 
    CASE 
     WHEN value IS NOT NULL THEN 'CALIFORNIA' 
     ELSE to_char(ID, text) 
    END 
FROM CDE;