原始表定义及数据:
用户ID 家属名称 显示顺序
========================
user1 父亲 1
user1 母亲 2
user1 叔叔 3
user2 父亲 3
user2 母亲 2
user2 叔叔 1
user3 叔叔 3 =》注意,可以跳着发顺序啊,真是shit
========================希望能用一个sql转变为:
========================
用户ID 家属名称1 家属名称2
user1 父亲 母亲
user2 叔叔 母亲
user3 叔叔
========================
不需要显示家属名称3.
不能使用Procedul,只用一个sql。呵呵
用户ID 家属名称 显示顺序
========================
user1 父亲 1
user1 母亲 2
user1 叔叔 3
user2 父亲 3
user2 母亲 2
user2 叔叔 1
user3 叔叔 3 =》注意,可以跳着发顺序啊,真是shit
========================希望能用一个sql转变为:
========================
用户ID 家属名称1 家属名称2
user1 父亲 母亲
user2 叔叔 母亲
user3 叔叔
========================
不需要显示家属名称3.
不能使用Procedul,只用一个sql。呵呵
解决方案 »
- oracle自带的统计信息是怎么一回事?
- select语句查询字段用双引号什么意思
- ora-12519 远程在linux上新建立oracle 9i的监听应用
- 数据库不能exp备份,在线等待请求帮助
- 存储过程中使用游标时效率的问题
- Oracle中Sql语句问题
- 请大家帮我看看这sqlnet.log文件,谢谢!
- 用ASP连接远程数据库问题~~在线等!!
- oracle816:在启动OracleoraHomeManagementServer时提示:在本地计算机无法启动OracleoraHomeManagementServer服务。错误997:重叠I/O操作
- ORACLE-你是英雄你来挑战
- 不解的问题????????????????????
- XP SP2安装oracle8 professional版,出现stopsrvc.vrf(78):Type mismatch 错误,急
用户ID,
MAX(DECODE(显示顺序, 1,家属名称, '')) 家属名称1,
MAX(DECODE(显示顺序, 2,家属名称, '')) 家属名称2
FROM 表
GROUP BY 用户ID
MAX(DECODE(显示顺序,'2',家属名称,'')) AS 家属名称2
FROM TBNAME GROUP BY 用户ID;
select 用户ID, 家属名称, row_number() over (partition by 用户ID order by 显示顺序) as "显示顺序" from 表就能得到标准的“显示顺序”