oracle SQL语句怎么关联一张表 没有对应数据的就显示为空

sql里怎么将一组数据当做一张表用,比如selectenvl(t.name,null),t.nofrommsgtwheret.noin(101,105,203)表msg的... sql里 怎么将一组数据当做一张表用, 比如 selecte nvl(t.name, null), t.no from msg t where t.no in (101,105,203) 表msg的no字段只有101这个值, 所以结果是
张三 101
可是我想要的结果是
张三 101
null 105
null 203
要这样显示是不是只能把(101,105,203)当做一张表来用,除了新建一张表并将数据导入(当数据量很大时,这样做好像也挺麻烦的),其它办法 那sql 应该怎么写呢?
展开
 我来答
csu_sgltmn
2014-09-04 · TA获得超过122个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:70.7万
展开全部
给你个思路,写一个split函数,根据逗号分隔,可以返回一个类似表的数据,然后在外连接即可。
更多追问追答
追问
oracle 提示 split 是无效的标识符,怎么解决?
追答
我是让你自己写这个函数,oracle里面有个叫自定义函数的东东,哥们 要想提高 这是必须的过程。而且这个函数网上一大堆都写烂了。
love我的夜
2014-09-04
知道答主
回答量:27
采纳率:100%
帮助的人:8.6万
展开全部
你可以用临时表
create table #temp
(no int)
insert into #temp values(101)
insert into #temp values(105)
insert into #temp values(203)

select b.name, a.no

from #temp a
left join msg b on a.no=b.no

drop table #temp
以上是sql server中语句
oracle有啥不同之处就不知道了~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelvis
2014-09-05 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:839万
展开全部
Oracle不太了解,LZ可以去了解下with as的用法,说不定可以实现
http://blog.csdn.net/a9529lty/article/details/4923957/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
低调小雄
2014-09-04 · 超过28用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:45.4万
展开全部
为什么不入库,入库了用左外连接不就可以了吗?
追问
当数据量大时 我想复制粘贴省事,入库的话 有什么语句或办法可以快速入库?换了数据库比如MySQL 也都会有导入工具的支持的?所以觉得麻烦……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式