Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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中的另一列计算列?_Sql_Monetdb - Fatal编程技术网

如何使用sql中的另一列计算列?

如何使用sql中的另一列计算列?,sql,monetdb,Sql,Monetdb,创建表查询是: 创建表目录(id int、ra double、decl double、zone int) 分区值根据decl计算,公式如下: 铸造(地板(decl)为整数) 我已经插入了表中所有的id,ra,decl值,然后我必须计算区域值 如何在sql查询中计算表的区域值 **在另一个extractedcatalog表中,我想从sql中的ra、decl计算y: 更新extractedcatalog集x=(cos(弧度(decl))cos(弧度(ra)); 但是回应:连接终止! 我的sql有问题

创建表查询是:

创建表目录(id int、ra double、decl double、zone int)

分区值根据decl计算,公式如下:

铸造(地板(decl)为整数)

我已经插入了表中所有的id,ra,decl值,然后我必须计算区域值

如何在sql查询中计算表的区域值


**在另一个extractedcatalog表中,我想从sql中的ra、decl计算y:

更新extractedcatalog集x=(cos(弧度(decl))cos(弧度(ra)); 但是回应:连接终止! 我的sql有问题吗*


非常感谢

您将希望执行以下操作:

update catalog set zone = CAST(FLOOR(decl) AS INTEGER);

你还没做完吗

update catalog set zone=CAST(FLOOR(decl) AS INTEGER);
如果这不起作用,请尝试将其作为自连接:

update catalog set zone=CAST(FLOOR(a.decl) AS INTEGER)
from catalog a
where 1=1;
我目前没有可用的DB实例,因此您必须自己检查这些实例

正如另一个人指出的,实际上根本不需要存储zone,只需将其作为计算值返回即可

select CAST(FLOOR(a.decl) AS INTEGER) as zone
from catalog a
where 1=1;

一个示例数据库模式会有所帮助!!两点。首先,floor()返回一个整数,因此cast()是多余的。接下来,规范化规则之一是不存储计算值。只要在需要的时候选择计算,你怎么会认为数据库引擎是mysql呢?OP没有指定任何内容。我目前没有任何DB引擎,但答案是相当通用的SQL,应该可以在任何DB上工作,几乎没有修改。我已经更正了我的答案,以反映你的挑剔:-p你能告诉我1=1是什么意思吗?这是一种使用where子句选择所有行的方法。可能不需要它*在另一个表extractedcatalog中,我想从ra计算y,在sql中计算decl:update extractedcatalog集合x=(cos(radians(decl))cos(radians(ra));但是回应:连接终止!我的sql有问题吗?ra、decl都插入到表中。