怎样一个表中的2个查询结果合并到一个表中的两列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样一个表中的2个查询结果合并到一个表中的两列相关的知识,希望对你有一定的参考价值。
SQL SERVER
就是一个表中符合条件A的放到第一列,符合条件B的放到第二列
我是想把查出来的数据合并成一条数据,就是变成查出来的第一列数据作为第一行第一列,第二个查出来的第一列数据作为第一行第二列,以此类推,把数据字段合并起来。可以做的到这样吗?
SELECT
CASE WHEN 逻辑表达式A THEN 想要显示的值 ELSE NULL END AS 列名,
CASE WHEN 逻辑表达式B THEN 想要显示的值 ELSE NULL END AS 列名
FROM 表或视图名
这样执行之后,第1列不是NULL的就是符合逻辑条件A的,第2列不是NULL的就是符合逻辑条件B的追问
谢谢,不过我是想把查出来的数据合并成一条数据,就是变成查出来的第一列数据作为第一行第一列,第二个查出来的第一列数据作为第一行第二列,以此类推,把数据字段合并起来。可以做的到这样吗?
追答那样的话理论上不行,因为可能存在既符合条件A又符合条件B的数据记录
如果确认没有这种情况倒是可以通过临时表来做(使用tempdb的临时表会比较麻烦)
谢谢,不过我是想把查出来的数据合并成一条数据,就是变成查出来的第一列数据作为第一行第一列,第二个查出来的第一列数据作为第一行第二列,以此类推,把数据字段合并起来。可以做的到这样吗?
追答union all
MySQL 中的百分比 - 在同一个表中的两列之间
【中文标题】MySQL 中的百分比 - 在同一个表中的两列之间【英文标题】:Percentages in MySQL - Between two columns in the same table 【发布时间】:2013-05-07 21:45:03 【问题描述】:我有一个如下所示的 MySQL 表:
Name | Pass | Fail | Pass Percent | Fail Percent
Abdy | 20 | 5 | |
Bob | 10 | 5 | |
Cantona | 40 | 10 | |
Dave | 30 | 20 | |
我正在尝试获取百分比:
like : passpercent = (pass/pass+fail)*100
我可以用一个 MySQL 代码为两列填充表格吗?
希望表格看起来像这样:
Name | Pass | Fail | Pass Percent | Fail Percent
Abdy | 20 | 5 | 80 | 20
Bob | 10 | 5 | 66 | 33
Cantona | 40 | 10 | 80 | 20
Dave | 30 | 20 | 60 | 40
【问题讨论】:
【参考方案1】:这绝对有可能。
填写第二张表:
UPDATE mytable SET pass_pct=(pass/pass+fail)*100,fail_pct=(fail/pass+fail)*100
当然,您也可以在选择第一个表时生成那些(如果您不想存储结果),例如:
SELECT name,pass,fail,(pass/pass+fail)*100 as pass_pct,(fail/pass+fail)*100 as fail_pct FROM mytable
【讨论】:
以上是关于怎样一个表中的2个查询结果合并到一个表中的两列的主要内容,如果未能解决你的问题,请参考以下文章