2014-03-27 141 views
0

我有以下查詢。我需要一個看起來像這樣的輸出PostgreSQL數據類型格式化函數

ea_month case ea_year zone_id 
January  0  2013  4001 
February 0  2013  4002 
March  1  2013  4001 
January  0  2014  4001 
February 0  2014  4001 
March  1  2014  4001 
February 0  2014  4002 
March  1  2014  4002 

SELECT ea_month,CASE WHEN ea_month = (SELECT to_char(now(), 'Month')) THEN 1 ELSE 0 END,ea_year,zone_id FROM staging_ea.stg_circle_zone_billedamount_rollup 

在我的表中我有我的價值爲1月,2月,3月的形式ea_month。

運行上面的查詢時,我得到的結果集後是這樣的:

ea_month case ea_year zone_id 
January  0  2013  4001 
February 0  2013  4002 
March  0  2013  4001 
January  0  2014  4001 
February 0  2014  4001 
March  0  2014  4001 
February 0  2014  4002 
March  0  2014  4002 

任何人都可以給我建議我要去哪裏錯了?它用於PostgreSQL查詢。

+0

你不需要選擇在'CASE'這可以通過對結果應用trim()或格式掩碼使用FM修改固定聲明。 '當ea_month = to_char(now(),'Month')then ...'應該這樣做。當然,這受環境設置的影響:'to_char()'函數返回的月份名稱取決於當前用戶的區域設置。 –

+0

我已經嘗試過沒有SELECT,但沒有效果。 –

+0

你確定'to_char()'實際上是以英文而不是其他語言返回''January'嗎? SELECT to_char(now(),'Month')'自己返回什麼? –

回答