请教以下oracle问题?

调活 2015-09-19 01:17:09
select /*+ parallel(a,8) */ a.identityid,a.createtime LAST_LOGIN_TIME,
(case when accounttype = 2 then accountname end) EMAIL,
(case when accounttype = 3 then accountname end) TELEPHONE,
from fileinter.TB_D_USECENTER_ACCOUNT_INFO a where a.identityid='305840012'
group by a.identityid,a.createtime,(case when accounttype = 2 then accountname end),(case when accounttype = 3 then accountname end)


表中数据结构是这样
identityid createtime accountname accounttype
123 sysdate jiaxiuya 1
123 sysdate 123123 2

我想合并成下面这样
identityid createtime EMAIL TELEPHONE
123 sysdate jiaxiuya 123123


请问上述语句如何修改?
...全文
178 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
调活 2015-09-19
  • 打赏
  • 举报
回复
引用 2 楼 ytoms 的回复:
WITH TT AS (SELECT '123' AS A, 'sysdate' AS B, 'jiaxiuya' AS C, 1 AS D FROM DUAL UNION ALL SELECT '123' AS A, 'sysdate' AS B, '123123' AS C, 2 AS D FROM DUAL) SELECT A, B, MAX(CASE WHEN D = 1 THEN C END) AS EMAIL, MAX(CASE WHEN D = 2 THEN C END) AS PHONE FROM TT GROUP BY A, B
非常感谢,数据库新手
治数有道 2015-09-19
  • 打赏
  • 举报
回复
WITH TT AS
(SELECT '123' AS A, 'sysdate' AS B, 'jiaxiuya' AS C, 1 AS D
FROM DUAL
UNION ALL
SELECT '123' AS A, 'sysdate' AS B, '123123' AS C, 2 AS D FROM DUAL)
SELECT A, B, MAX(CASE WHEN D = 1 THEN C END) AS EMAIL, MAX(CASE WHEN D = 2 THEN C END) AS PHONE
FROM TT
GROUP BY A, B


调活 2015-09-19
  • 打赏
  • 举报
回复
我只能想到这样解决 select identityid, LAST_LOGIN_TIME, wmsys.wm_concat(a.email) email, wmsys.wm_concat(a.telephone) telephone from (select /*+ parallel(a,8) */ a.identityid,a.createtime LAST_LOGIN_TIME, (case when accounttype = 2 then accountname end) EMAIL, (case when accounttype = 3 then accountname end) TELEPHONE, from fileinter.TB_D_USECENTER_ACCOUNT_INFO a where a.identityid='305840012' group by a.identityid,a.createtime,(case when accounttype = 2 then accountname end), (case when accounttype = 3 then accountname end))b group by identityid LAST_LOGIN_TIME
最近在研究如何用 易语言 连接oracle数据库,搜集了网上很多源码和请教了一些人都没能测试成功。 经过不懈努力,我终于测通了!哈哈哈哈~ 不过,我想吐槽的是: 在搜集资料过程中,发现很多人都说易语言很难连上oracle,讲真,我也觉得官方不够给力! oracle作为全球第一大数据库厂商,为什么出易语言的官方支持库来适配呢? 虽然说可以通过调用windows的odbc来连,但这对不懂的人来说是很困难的一件事! 所以,真心希望官方能开发出oracle的支持库!!! 在测试过程中,我总结了以下几个需要注意的点: 1、无论你的电脑是32位还是64位,都必须安装32位的oracle客户端。安装类型可以是:管理员、运行时。 2、从oracle 11g以后,oracle官方不再提供32位的客户端安装介质。目前最新的oracle客户端为win32_11gR2_client.zip,可直接从官网下载。 3、选择DRIVER连接时,需要先在$ORACLE_HOME/network/admin/tnsnames.ora文件中的定义的一个连接名,测试成功后再将连接名配置在SERVER(连接服务名)中。 4、选择DSN连接时,需要先在OS系统数据源(32位)中配置好数据源,测试成功后再将数据源名称配置在DSN(数据源)中。 只要你按照以上几点来,就肯定可以用易语言连接oracle,并执行简单查询。 我自己的测试代码已分享出来了,需要oracle客户端的朋友可以去官方下载,也可以私信我。 好了,第一次参加这么盛大的活动,小小意思,请各位看官指点,谢谢!

17,138

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧