Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql workbench/j中添加计算列_Sql_Amazon Redshift_Calculated Columns - Fatal编程技术网

如何在sql workbench/j中添加计算列

如何在sql workbench/j中添加计算列,sql,amazon-redshift,calculated-columns,Sql,Amazon Redshift,Calculated Columns,如何在SQL workbench/j(作为amazon redshift的客户端)中添加计算列 我还尝试用一个常量字符串值替换SELECT语句,但它不起作用。您可以通过以下方法执行此操作: ALTER TABLE table_one ADD COLUMN test_column VARCHAR(100) NULL; GO; 然后通过以下方式更新所有行: UPDATE table_one SET test_column = (CASE WHEN LEFT(name,3)

如何在SQL workbench/j(作为amazon redshift的客户端)中添加计算列

我还尝试用一个常量字符串值替换
SELECT
语句,但它不起作用。

您可以通过以下方法执行此操作:

    ALTER TABLE table_one
    ADD COLUMN test_column VARCHAR(100) NULL;

    GO;
然后通过以下方式更新所有行:

UPDATE table_one
SET test_column = (CASE WHEN LEFT(name,3) = "Ads" THEN "ok" ELSE "no" END) 

为未来的搜索者添加:MySQL 5.7支持计算列,它称之为“生成”列。在MySQL Workbench中,您可以通过选择Columns选项卡中的行,单击'Generated'按钮,并在Default/Expression字段中添加公式(开头没有等号)。

我认为更好的方法是
更改表
,然后执行
更新
…这与计算列不同,因为它不会为新插入的行填充test_列。您必须定期运行UPDATE语句(或者将其添加为表触发器,这在Redshift中不受支持)。它是关于SQL Workbench/J的,而不是关于MySQL Workbenchal的。因此,SQL标准将
生成的[ALWAYS]指定为(函数)][STORED | VIRTUAL]
——Firebird使用
语法计算的
(已经有很长时间了)。单词
VIRTUAL
也用于此,这是不幸的,因为它也是标准的存储类说明符之一(即[STORED | VIRTUAL]——前者在磁盘上,后者是动态计算的)。
UPDATE table_one
SET test_column = (CASE WHEN LEFT(name,3) = "Ads" THEN "ok" ELSE "no" END)