SQL 怎么用查询结果更新列
SELECTsum(casewhenaccess_complexity='low'then1else0end)asAV__Lfrombase_metrics,entry,...
SELECT sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date)可以得到一列查询结果,现在要把结果更新到t表AV_L列中应该怎么办 展开
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date)可以得到一列查询结果,现在要把结果更新到t表AV_L列中应该怎么办 展开
3个回答
展开全部
SQL用查询结果更新列:
方法一:
1、升序排序:
使用ORDER BY子句时,默认情况下数据是按升序排列的,可用ASC关键字指点升序排列,或者不指定,默认就是升序,显示效果是一样。
2、降序排序:
需要查询结果降序排列时,必须在排序后指定DESC关键字。
举例:
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期字段 = tmp.published_date)。
方法二:
1、使用非选择列表排序:
在SELECT列表中也可以不出现排序的列。
2、使用表达式排序:
在SELECT的列中可以出现算术表达式,排序时也可使用表达式来按照表达式计算结果来排序的目的
3、使用列别名排序:
在做SELECT查询时,可为列或表达式定义别名,在执行排序时,可使用别名进行排序。
4、使用列位置排序:
可按照列或表达式在SELECT列表中的位置进行排序,还可有效缩减排序语句的长度。在使用UNION这类集合操作符时,如SELECT列表的列名不同,此时必须使用列位置进行排序。以部门编码和职员编码作为升序排列的标准。
5、使用多列排序:
当执行操作时,可根据多列排序。当一多列作为排序标准时,先按照第一列排序,如第一列数据相同,以第二列排序,依次类推
方法一:
1、升序排序:
使用ORDER BY子句时,默认情况下数据是按升序排列的,可用ASC关键字指点升序排列,或者不指定,默认就是升序,显示效果是一样。
2、降序排序:
需要查询结果降序排列时,必须在排序后指定DESC关键字。
举例:
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期字段 = tmp.published_date)。
方法二:
1、使用非选择列表排序:
在SELECT列表中也可以不出现排序的列。
2、使用表达式排序:
在SELECT的列中可以出现算术表达式,排序时也可使用表达式来按照表达式计算结果来排序的目的
3、使用列别名排序:
在做SELECT查询时,可为列或表达式定义别名,在执行排序时,可使用别名进行排序。
4、使用列位置排序:
可按照列或表达式在SELECT列表中的位置进行排序,还可有效缩减排序语句的长度。在使用UNION这类集合操作符时,如SELECT列表的列名不同,此时必须使用列位置进行排序。以部门编码和职员编码作为升序排列的标准。
5、使用多列排序:
当执行操作时,可根据多列排序。当一多列作为排序标准时,先按照第一列排序,如第一列数据相同,以第二列排序,依次类推
展开全部
t表 有没有 与 published_date 相关联的字段?
如果有的话。
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期字段 = tmp.published_date);
如果有的话。
UPDATE t
SET
t.AV_L = tmp.AV__L
FROM
t JOIN
(SELECT
published_date,
sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date) AS tmp
ON (t.日期字段 = tmp.published_date);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的,说了是插入,不是UPDATE
insert into t( AV_L )
SELECT sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date)
insert into t( AV_L )
SELECT sum(case when access_complexity='low' then 1 else 0 end) as AV__L
from base_metrics,entry,cvss
where entry.PrimaryKey=cvss.ForeignKey and
cvss.PrimaryKey=base_metrics.PrimaryKey
group by published_date)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询