2012-09-11 50 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