求一个Funtion,处理字符串,返回表

terry 2009-10-21 08:10:06
有点讨厌db2,很多语法都不习惯。
在方法中不能使用临时表,以前在sql server中的方法,拿到db2还不知道这么改了。郁闷。
问题:
现在有一个字符串,格式是:
 ,'1','2','3','1','2','3', 

或者
 '1','2','3','1','2','3' 


现在需要返回 有一列不重复数据的表。
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
terry 2009-10-22
  • 打赏
  • 举报
回复
感谢楼上。

谢谢大家,问题已经解决。
select '1' from sysibm.sysdummy1

sysibm.sysdummy1表是一个特殊的内存中的表

values 56 union all values 45;
WWWWA 2009-10-22
  • 打赏
  • 举报
回复
SET SSQL='SELECT * FROM TT';
PREPARE S1 FROM SSql;
EXECUTE S1;
WWWWA 2009-10-22
  • 打赏
  • 举报
回复

1 select dictinct '1' from syscat.tables

2
SET SSQL='SELECT * FROM TT';
PREPARE S1 FROM sql;
EXECUTE S1;
terry 2009-10-22
  • 打赏
  • 举报
回复
db2中的 临时表 只能在存储过程中创建,在function中却不能,
要是能使用临时表就很简单了。

拼sql语句的办法:
1,在循环中,通过字符串拆分 获取当前的一个id值。
拼成一个sql语句的字符串 格式就像

select '1' from TableName
union
select '2' from TableName
union
select '3' from TableName
union
......

如果这么处理,有2个问题需要请教大家:
1, 现在需要一个表名,TableName 需要一个系统临时表,只好只有一个字段,这个表应该是存在的,
我不知道表名叫什么。

2, 在db2中如果执行字符串sql语句?像sql server中的 Execute 那样的方法。






wwwwb 2009-10-22
  • 打赏
  • 举报
回复
在DB2中建立临时表,可以参考 
http://lavasoft.blog.51cto.com/62575/40486
实际是可以不用临时表方法,只要建立一张LSB,字段ID内容1-10000,用来与字符串连接,
直接拆分字符串,你不能建立表,估计也没有用。
terry 2009-10-22
  • 打赏
  • 举报
回复
不能随便建表的,物理表不行。
而且我的sql种可能有好几个这样的字符串要用在条件中,
使用好几个这样的条件:
 in('1','2','3','1','2','3')

很影响效率的,只好想把 它转化成 一个临时表 使用 inner join 内联。
WWWWA 2009-10-22
  • 打赏
  • 举报
回复
用物理表不行吗?
拆分字符串,插入记录,分组是这样?
liyan93834183 2009-10-22
  • 打赏
  • 举报
回复
每太明白你的意思,你把sql的funtion贴出给你看看怎么改一下

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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