请教一个sql笔试题

问题描述

表名为table的表内容如下year month value 2009 1 1.1 2009 2 1.2 2009 3 1.3 2009 4 1.4 2010 1 2.1 2010 2 2.2 2010 3 2.3 2010 4 2.4 要求查询结果为 year m1 m2 m3 m4 2009 1.1 1.2 1.3 1.4 2010 2.1 2.2 2.3 2.4 sql语句怎么写? 问题补充:Rainbow702 写道

解决方案

原先那个语句不对,正确的应该是下面这个select year, decode(month,'1',value,null) m1,decode(month,'2',value,null) m2,decode(month,'3',value,null) m3,decode(month,'4',value,null) m4 from table group by year
解决方案二:
decode(month,'1',value,null) m1注释 decode作用:如果month这一列的值匹配为'1',则取出对应的value值作为查询结果中m1这一列的值 如果不匹配则设定默认值为null,当然你也可以设置其他默认值,比如0
解决方案三:
引用decode你去GOOGLE一下ORACLE的 decode 函数就知道了
解决方案四:
pigswimming 应该是正解
解决方案五:
引用select year, decode(1,'m1',month,null),decode(2,'m2',month,null), decode(3,'m3',month,null), decode(4,'m4',month,null) from table group by year 这个是 oracle 的吧
解决方案六:
select year, decode(1,'m1',month,null),decode(2,'m2',month,null), decode(3,'m3',month,null), decode(4,'m4',month,null) from table group by year典型的行转列
解决方案七:
你用的是哪个数据库呢?

时间: 2024-10-30 11:55:06

请教一个sql笔试题的相关文章

sql-进行遇到的一个SQL 面试题

问题描述 进行遇到的一个SQL 面试题 我现在有两张表 一个用户表:user (id name age) 一个产品表:product(id name)现在有一个需求 用户可以对产品添加任何属性: 如用户想添加产品的来源地 然后用户能够查询到该属性和原有的属性其他用户不能查到添加的属性; 请问这个表要怎么设计 可以添加任何字段和表结构; 解决方案 可以给表增加如下字段1,版本 :可以查询以前内容2,属性名称 :可以增加任意属性3,属性内容:3,用户权限:只限某个用户查询 解决方案二: 产品表:pr

sql语句-请教一个SQL语句如何写?

问题描述 请教一个SQL语句如何写? 求助大侠:表A中有字段a,b,c,d,e,f,但并不是所有字段都一定有值,其中有值字段原值为'201xxxx'现在要将有值字段由'201xxxx'替换为'2001xxxx',无值字段保留为空,请问SQL语句如何写?(其中'201xxxx'中的xxxx代表数字,比如20101或201010101,位数不定,也可能只为201)请赐教. 解决方案 update [A] set [a] = left(a2)+'0'+right(alen(a)-2) [b] = le

oracle-新手请教一个sql查询问题,在线等,谢谢

问题描述 新手请教一个sql查询问题,在线等,谢谢 一张激活表TL_CSU_ACTIVATE_LOG: 一张用户表TV_CSU_USER 现在要查询2014-12to2015-12每月注册的不同类型(T,B,M,D)用户数,如下图: sql 应该怎么写 解决方案 参考Oracle行列转换 因为你的类型是固定的,所以直接查询,如果你的类型不固定,可以参考上面的链接. SELECT TT.Month ,SUM(CASE WHEN TT.TYPE = 'B' THEN Count ELSE 0 END

请教一个sql语句该怎么写

问题描述 请教一个sql语句该怎么写 table_A id a b c d table_B_id tabel_B id e f g 怎么查询的到table_A_id:这一行的able_B_id,的对应的tabel_B行 中e等于特定值.有点乱希望理解. 解决方案 select * from table_A a join table_B b on a.table_B_id = b.id where b.e = xxx; xxx为条件 解决方案二: 确实有点乱,想帮你都帮不了

sql-甲骨文请教一个SQL题目

问题描述 甲骨文请教一个SQL题目 表 cf01,cf02 cf01是大类,cf02是小类,归于大类下. 要求,列出 cf01表中 fyrq不为空,且在2015/1/1 00:00:00和2015/1/31 23:59:59之间cf02表中的所有小类数据并对应回cf01表的fyrq字段. cf02表中的cfsb字段,为cf01表的cfsb对应 附加要求1,cf02表中,ypxh字段,对应yk_typk表的ypxh字段,请同时把yk_typk表中的ypmc,ypgg字段取出 附加要求2,cf01表

一请教一个sql查询语句

问题描述 一请教一个sql查询语句 在table1表里查询a字段大于3的记录,然后这些结果记录降序的排列后的前5条记录. 解决方案 select top 5 * from table1 where a > 3 order by 排序字段 desc 解决方案二: 不好意思,请问mysql的该怎么写呢? 解决方案三: select * from table1 where a>3 order by 排序 desc limit 5 解决方案四: 一个值得纪念的SQL查询语句

sql-求助:请教一个SQL语句的算法

问题描述 求助:请教一个SQL语句的算法 业务逻辑:在财务中,在一个结算周期内的结算金额没有达到结算限额,则此次不做结算,将此次结算金额累计到下一个结算周期内结算,直到满足结算限额才结算.其中每一个合同的计算限额不同. 举例:已知的合同号001的结算限额为200 ,合同号002的结算限额为300 合同号A 结算日B 结算金额C 想得到的结果D 001 1.1 100 0 001 2.1 110 210 001 3.1 120 0 001 4.1 130 250 001 5.1 140 0 001

sql-新手,请教一个SQL语句

问题描述 新手,请教一个SQL语句 如图,我想取出字段(包括字段分票如第一个图)td=0的记录,但是光第一条SQL只能实现父值为0或者父值和子值同时为0的效果,我想如果子值为1了父值为0的情况也不用显示出来的效果,求大神指点 解决方案 select * from (select tdh from cmhctd where td=0) a,cmhctd where INSTR(cmhctd.tdh,a.tdh)>0 解决方案二: select a.tdh,a.cm,a.hc,a.th from c

请教一个SQL实现

问题描述 因小弟第一次发帖,问题可能描述的不是很清楚,请大家谅解,现请教大家一个SQL实现(ORACLE),情况如下:现有两张表,其中一张表A,存放的是单位信息,树形结构.另一张表存放的是人员的登录信息,其中有一列存放的是该人员对应的单位编码.现需要实现如下需求:对单位(第一级)进行分类统计人员登录个数,单位的人员登录个数为该单位以及该单位的子单位登录个数之和.请大家赐教,不甚感激! 问题补充:只需实现这个效果:<br />公安机关 3<br />政府机关 5<br />