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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle SQL语句怎么关联一张表 没有对应数据的就显示为空相关的知识,希望对你有一定的参考价值。

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 应该怎么写呢?

给你个思路,写一个split函数,根据逗号分隔,可以返回一个类似表的数据,然后在外连接即可。追问

oracle 提示 split 是无效的标识符,怎么解决?

追答

我是让你自己写这个函数,oracle里面有个叫自定义函数的东东,哥们 要想提高 这是必须的过程。而且这个函数网上一大堆都写烂了。

追问

噢,split 不是内置的啊?那这个关键字为什么会是高亮的呢,它原来的作用是什么?

追答

不是关键字,自定义一个吧,骚年!

追问


你好, 可以帮看一下这个函数有什么问题吗,我想为数据起一个字段别名以便后面用在where条件中,编译时没报错 但执行 select * from table(lxi_split('1,2,3,4,5')) 时说  “程序包或函数lxi_split处于无效状态” ,谢谢了~

追答

lxi 这个type有创建么? 你确定编译通过了?我现在手头没有oracle环境,只能自己看看了。

lxi 这个type有创建么? 你确定编译通过了?我现在手头没有oracle环境,只能自己看看了。

参考技术A 你可以用临时表
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有啥不同之处就不知道了~
参考技术B Oracle不太了解,LZ可以去了解下with as的用法,说不定可以实现
http://blog.csdn.net/a9529lty/article/details/4923957/
参考技术C 为什么不入库,入库了用左外连接不就可以了吗?追问

当数据量大时 我想复制粘贴省事,入库的话 有什么语句或办法可以快速入库?换了数据库比如mysql 也都会有导入工具的支持的?所以觉得麻烦……

sql语句 怎么从一张表中查询数据插入到另一张表中

查询的数据插入到另一张表中,分为两种情况,一种是目标表不存在,另一种是目标表存在。

工具:Oracle 10g

源表数据:

情况一(目标表不存在,创建表名为t1的表,将person表中全部数据插入):

执行语句:

create table t1 as select * from person;

情况二(目标表t1存在,将person表中agegrade为年轻人的数据插入):

insert into t1 select * from person where agegrade=\'年轻人\';
参考技术A

1.在sheet1中先写好筛选条件,点开文件复制的目标excel(本文是sheet2),最上面工具栏中点“数据”,找到筛选旁边的“高级”选项,跳出“高级筛选”框

2.选中“将筛选结果复制到其他位置”,然后“列表区域”选中sheet1中的原始数据,“条件区域”选中sheet1中我们提前写好的条件,“复制到”选中sheet2中任意一个单元格(如果有要求是哪个单元格,直接点击对应单元格),“确定”

3.结果就出来了。

参考技术B SELECT INTO 语句

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
SQL SELECT INTO 语法

把所有的列插入新表:
SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_tablename

或者只把希望的列插入新表:
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename

以上是关于oracle SQL语句怎么关联一张表 没有对应数据的就显示为空的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中,多表关联删除该怎么写?

在oracle中怎么把一张表的数据插入到另一张表中

sql两张表(主表和字典表)关联查询,字典项翻译问题

oracle中在一张表存id1-id10,怎么一次关联查询出对应的名称?id1-id10都在一张表idInfo中。

Oracle两张表关联中间表查询,那张关联到数据就显示,关联不到就负空值

一张表怎么与一张表的一个字段的关联获取它的id值