SQL数据表纵横转换
SELECT DISTINCT
'(select b.risk from rhwl_easy_genes_new_risk b where b.genes_id=a.id and b.disease=''' || b."disease" || ''') as "' || b."disease" || '",'
FROM
rhwl_easy_genes_new A,
rhwl_easy_genes_new_risk b
WHERE
b.genes_id = A.ID
AND A.NAME IN (
SELECT A
.NAME
FROM
rhwl_easy_genes_new A
WHERE
A.active = TRUE
AND A.NAME NOT LIKE'CS%'
AND A.package_id IN (
SELECT ID
FROM
rhwl_genes_base_package
WHERE
code IN ( 'FV', 'JE', 'JC' )));
通过去重,会生成列的select语句:
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='不宁腿综合征') as "不宁腿综合征",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='萘普生') as "萘普生",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='耐力') as "耐力",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='抗雀斑能力') as "抗雀斑能力",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='利培酮') as "利培酮",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='帕金森病') as "帕金森病",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='顺铂') as "顺铂",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='霍奇金淋巴瘤') as "霍奇金淋巴瘤",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='哮喘') as "哮喘",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='酒精性肝硬化') as "酒精性肝硬化"
把上面的语句插入, 生成最终查询:
SELECT
p.name as "套餐",
a.name as "样本编号",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='不宁腿综合征') as "不宁腿综合征",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='萘普生') as "萘普生",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='耐力') as "耐力",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='抗雀斑能力') as "抗雀斑能力",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='利培酮') as "利培酮",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='帕金森病') as "帕金森病",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='顺铂') as "顺铂",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='霍奇金淋巴瘤') as "霍奇金淋巴瘤",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='哮喘') as "哮喘",
(select b.risk from rhwl_easy_genes_new_risk b where b.active=True and b.genes_id=a.id and b.disease='酒精性肝硬化') as "酒精性肝硬化"
FROM
rhwl_easy_genes_new a,
rhwl_genes_base_package p where a.state in ('report_done', 'done', 'result_done', 'deliver') and a.active = True and a.name not like 'CS%' and a.package_id in (select id from rhwl_genes_base_package where code in ('FV', 'JE', 'JC')) and p.id = a.package_id order by p.name, a.name
SQL数据表纵横转换的更多相关文章
- asp.net 查询sql数据表的网页模板
最近因为工作需求,要制作一个网页模板,主要是用于快速开发,可以查询Sql数据表信息的模板, 昨天做好了,这个只是一个Demo,但是功能已经齐全了, 开发新的网站时,需要新增一个xml,复制粘贴网页的前 ...
- 关于SQL 数据表中的密码加密
首先,都知道一个字节(byte)等于八位二进制数.在数据表中将密码字段设置为binary类型,再结合哈希散列运算可以实现密码加密. 下面介绍下binary 和 varbinary: binary 和 ...
- sql数据表的设计思路
好的表结构分的比较细致,个人理解大概主要分为主表.明细.历史记录表.中间表,辅助表结构应该分为:类型表.状态表.统计表.统计明细表等.为了一个功能加那么多表实在是多余,如果写一个非常复杂的业务逻辑还是 ...
- 查找SQL数据表或视图中的字段属性信息
一.只支持表,非常牛逼的 SELECT a.name,(case when (SELECT count(*) FROM sysobjects WHERE (name in (SELECT name F ...
- qt: 获取sql数据表的所有的字段;
1. mysql 数据库: 转载: https://www.cnblogs.com/fuqia/p/8994080.html mysql安装成功后可以看到已经存在mysql.information_s ...
- sql数据表中的值重新命名
select u.id,u.name,u.sex, 2 (case u.sex 3 when 1 then '男' 4 when 2 then '女' 5 else '空的' 6 end 7 )性别 ...
- SQL数据表插入随机数(转)
declare @T TABLE (id int identity(1,1),[Name] nvarchar(20), Randnum int) insert @T ([Name]) select ' ...
- 手动创建sql数据表
createtable tb ( ID int IDENTITY (1,1) notnull, --创建列ID,并且每次新增一条记录就会加1 WokNo ...
- Sql数据表中的关系
随机推荐
- BOM window对象方法
window对象方法 alert():弹出一个警告对话框. prompt():弹出一个输入对话框. confirm():弹出一个确认对话框.如果单击“确定按钮”返回true,如果单击“取消 ...
- Spring源码由浅入深系列六 CreateBean过程
- 永久修改 putty字体大小
修改前: 修改操作: 1. Window -> Appearance -> Font settings -> Change 修改 修改 2. 返回登陆主界面 Session ...
- 3. Vim入门教程
1. 基本概念 1.1 了解Vim的三个基本模式 当我们安装完一个编辑器后,肯定会打开它,然后在里面输入点什么东西,但是打你打开Vim后,想要输入点什么却发现自己什么都没有输入,所以在写点东西之前,先 ...
- Tomcat下载部署及解决中文乱码显示
一.下载 tomcat下载链接:https://tomcat.apache.org/ 1.进入tomcat官网后,我使用的是tomcat9,所以我选择tomcat9.然后点击core下的zip包下载. ...
- idea在ssm项目中引入本地的jar
在对应的lib下,右键找到add...,即可
- js 实现多选
效果: html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- JS函数 函数的作用,可以写一次代码,然后反复地重用这个代码。
什么是函数 函数的作用,可以写一次代码,然后反复地重用这个代码. 如:我们要完成多组数和的功能. var sum; sum = 3+2; alert(sum); sum=7+8 ; alert(sum ...
- 同步图计算实现pageRank算法
pageRank算法是Google对网页重要性的打分算法. 一个用户浏览一个网页时,有85%的可能性点击网页中的超链接,有15%的可能性转向任意的网页.pageRank算法就是模拟这种行为. Rv:定 ...
- latex 引用文献 bib
study from : https://jingyan.baidu.com/article/925f8cb8bce1f0c0dce0564f.html 寻找文献 谷歌学术 from: https:/ ...