Informix 没有类似Oracle的 with as 的子查询部分的用法

Only了了 2019-06-17 03:32:45
Informix 没有类似Oracle的 with as 的子查询部分的用法
...全文
870 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaosnet 2020-04-24
  • 打赏
  • 举报
回复
在informix 14.10中支持该语法,之前的版本是使用 select * from ( select '123123' user_id,'201904' rptdate,'47' monfee from dual) table_tst; 来代替吧。
Only了了 2019-09-24
  • 打赏
  • 举报
回复
引用 5 楼 wgf098 的回复:
可以select .... into temp table_tst,创建了临时表,session一关,临时表就自动释放了。很多操作数据库内部也会自动创建临时表,只是外面感觉不到。

谢谢你的回答!这样的话也可以。不过我还有几个疑问:
那创建的这个临时表,需不需要提交才能使用呢?
如果我不关闭session,使用回滚,临时表是否也会释放呢?
如果我多次执行select .... into temp table_tst,是否会造成数据重复?
也就是说每次执行前需不许要手动drop零时表或truancate数据呢?
wgf098 2019-09-24
  • 打赏
  • 举报
回复
可以select .... into temp table_tst,创建了临时表,session一关,临时表就自动释放了。很多操作数据库内部也会自动创建临时表,只是外面感觉不到。
Only了了 2019-09-24
  • 打赏
  • 举报
回复
引用 7 楼 wgf098 的回复:
[quote=引用 6 楼 Only了了 的回复:]
[quote=引用 5 楼 wgf098 的回复:]
可以select .... into temp table_tst,创建了临时表,session一关,临时表就自动释放了。很多操作数据库内部也会自动创建临时表,只是外面感觉不到。

谢谢你的回答!这样的话也可以。不过我还有几个疑问:
那创建的这个临时表,需不需要提交才能使用呢?
如果我不关闭session,使用回滚,临时表是否也会释放呢?
如果我多次执行select .... into temp table_tst,是否会造成数据重复?
也就是说每次执行前需不许要手动drop零时表或truancate数据呢?[/quote]

不提交就可以使用。
如果不关闭session,回滚后临时表就释放了。
同一个temp table_tst,无法多次执行select ... into temp table_tst;因为这条语句创建表并插入数据,所以第二次执行时就提示表已经存在了。
如果需要多次使用就得先drop掉。可以drop table if exists table_tst.这样的语法,即使table_tst不存在也不会返回错误提示。[/quote]

明白了,感谢感谢
wgf098 2019-09-24
  • 打赏
  • 举报
回复
引用 6 楼 Only了了 的回复:
[quote=引用 5 楼 wgf098 的回复:] 可以select .... into temp table_tst,创建了临时表,session一关,临时表就自动释放了。很多操作数据库内部也会自动创建临时表,只是外面感觉不到。
谢谢你的回答!这样的话也可以。不过我还有几个疑问: 那创建的这个临时表,需不需要提交才能使用呢? 如果我不关闭session,使用回滚,临时表是否也会释放呢? 如果我多次执行select .... into temp table_tst,是否会造成数据重复? 也就是说每次执行前需不许要手动drop零时表或truancate数据呢?[/quote] 不提交就可以使用。 如果不关闭session,回滚后临时表就释放了。 同一个temp table_tst,无法多次执行select ... into temp table_tst;因为这条语句创建表并插入数据,所以第二次执行时就提示表已经存在了。 如果需要多次使用就得先drop掉。可以drop table if exists table_tst.这样的语法,即使table_tst不存在也不会返回错误提示。
Only了了 2019-09-23
  • 打赏
  • 举报
回复
引用 3 楼 wgf098 的回复:
没有。可以用select..into...格式。select '123123' user_id,'201904' rptdate,'47' monfee from dual into table_tst,创建表table_tst的同时也插入了数据。

谢谢你的回答,但是我不想要插入并创建表,只是临时用一下
wgf098 2019-08-16
  • 打赏
  • 举报
回复
没有。可以用select..into...格式。select '123123' user_id,'201904' rptdate,'47' monfee from dual into table_tst,创建表table_tst的同时也插入了数据。
Only了了 2019-06-18
  • 打赏
  • 举报
回复
类似于Oracle的 with as 例如: with table_tst as ( select '123123' user_id,'201904' rptdate,'47' monfee from dual ) select * from table_tst;
Only了了 2019-06-18
  • 打赏
  • 举报
回复
没有人回答嘛

1,195

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 Informix
社区管理员
  • Informix社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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