2012-09-11 51 views
-1

是否Vertica支持虛擬列? 我閱讀了文檔,找不到它!Vertica是否支持虛擬列?

用途: 我有一個表:

create table test(
id number, 
name varchar(12), 
account data_type as function_name 
); 
  • 因爲Vertica的不支持從美國以外的其他國家的貨幣格式,我尋找一個解決這個當我填充我的表持有貨幣欄。
  • 我將在C++中創建一個特殊的格式函數,然後應用於列定義。 這可能嗎? THX
+1

如果手冊沒有提到虛擬列,很可能它們不受支持。你究竟在努力實現什麼?格式化價格應該在前端完成,只需在表格中存儲價值和貨幣。 –

+0

Brasil中的貨幣格式是「,」用於分組和「。」的逗號。指向小數點。而在美國是另一回事。因此,來自其他RDBMS的任何貨幣都必須在加載時進行轉換,在列上應用貨幣區域設置(vertica不支持)或創建一個外部用戶定義函數,該函數將在加載時或在數據庫內部使用si改變或插入! –

+0

數字列不**具有格式。該格式僅在您實際顯示值時才「定義」。因此,如果您只是簡單地使用'numeric'(或Vertica中的等價物),那麼您應該沒有問題 - 只需在應用程序中進行格式化即可。你不需要任何特殊的數據類型。此外:SQL標準只定義數字文字應該如何「格式化」:使用'.'作爲小數,而不是別的。 –

回答

-1

我已經找到了解決我的問題:

dbadmin=> SELECT translate(to_char(123456.77,'R$ 999G999G999D99'), ',.', '.,'); 
    translate 
-------------------- 
R$  123.456,77 
(1 row) 

通過使用翻譯功能,我可以代替輸出字符串件。 THX