【问题标题】:Does Vertica supports Virtual Columns?Vertica 是否支持虚拟列?
【发布时间】:2012-09-11 15:26:12
【问题描述】:

Vertica 是否支持虚拟列? 我阅读了文档,但找不到!

使用: 我有一张桌子:

create table test(
id number,
name varchar(12),
account data_type as function_name
);
  • 由于 Vertica 不支持美国以外其他国家/地区的货币格式,因此在填充包含货币列的表时,我正在寻找解决此问题的方法。
  • 我将在 C++ 中创建一个特殊的格式函数,然后应用于列定义。

这可能吗?

【问题讨论】:

  • 如果手册中没有提到虚拟列,很可能它们不受支持。你到底想达到什么目的?格式化价格应该在前端完成,只需将值和货币存储在您的表格中。
  • 巴西的货币格式是“,”分组逗号和“.”小数点。而在美国则相反。因此,来自其他 RDBMS 的任何货币都必须在加载时进行转换,在列上应用货币区域设置(vertica 不支持),或者创建一个外部用户定义的函数,该函数将在加载时使用或在数据时在数据库内部使用si 更改或插入!!!
  • 数字列没有有格式。仅当您实际显示值时,才“定义”格式。因此,如果您只是使用 numeric(或 Vertica 中的任何等价物),您应该没有问题 - 只需在您的应用程序中进行格式化。您不需要任何特殊的数据类型。此外:SQL 标准仅定义数字文字应如何“格式化”:使用. 表示小数,仅此而已。

标签: database currency create-table vertica


【解决方案1】:

我找到了解决问题的方法:

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

通过使用翻译功能,我可以替换输出中的字符串片段。 谢了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2013-09-08
    • 2011-03-01
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多