IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

关于在SQL查询中使用插入


IBM大型机论坛 -> DB2
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月19日,星期三,下午6:18
引用回复

要求:

我有一个带有列A和B的table1,该表有25行。现在,我想根据B列对该表进行排序,并仅从中获取前5行。我不想使用游标,但希望在单个insert语句中进行操作。我尝试使用下面的查询。但它说无效的关键字“ ORDER”

我的查询是


插入表1
选择 *
从表1
B订购
仅获取前5行
回到顶部
查看用户资料 发送私信
克里斯托弗

新的用户


已加入:2008年7月31日
帖子:53
地点:纽约

发布发表:2008年11月19日,星期三7:00 pm
引用回复

嗨,NikhilMF10,可能我错过了实际要求。
为什么要从要获取数据的同一表中插入数据?
从表中选择数据时(而不是在插入时),顺序/排序会显示在图片中。

克里斯
回到顶部
查看用户资料 发送私信
dbzTHEdinosauer

全球主持人


已加入:2006年10月20日
帖子:6967
位置:瓷宝座

发布发表:2008年11月19日,星期三,下午7:12
引用回复

如果存在唯一索引,则可能的dup条目将禁止更新。

基本语法是,不能将ORDER BY放在INSERT的Select子句上。
回到顶部
查看用户资料 发送私信
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月20日,星期四,上午8:51
引用回复

你好


我什至尝试在第一行中使用另一个Table table2,但这也不起作用 icon_sad.gif

请让我知道解决方案。
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月20日,星期四,上午8:59
引用回复

dbzTHEdinosauer写道:
基本语法是,不能将ORDER BY放在INSERT的Select子句上。

尼基尔

猜猜你错过了上面的一个。这不是导致问题的表顺序。请说明您要达到的目标。
回到顶部
查看用户资料 发送私信
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月20日,星期四,12:07 pm
引用回复

我实际上想要在表中的总共25行中,我只想基于B列升序选择5行-删除其余的行。

范例:

表1有10行


稻田10
dar 1
第9部分
苏格兰人6
火腿4
8号
斯柯布2
丹13
安迪16
San 11


现在我想要的是低于最好的5个(升序)



dar 1
斯柯布2
火腿4
苏格兰人6
8号

不论我在同一张表中还是在另一张表中,都必须使用随机函数,因为我必须使用上面的五张表来随机地从中售出价值。
回到顶部
查看用户资料 发送私信
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月20日,星期四,12:08 pm
引用回复

请考虑将A作为第1列,将B作为第2列。
回到顶部
查看用户资料 发送私信
ashok_uddaraju

新的用户


已加入:2007年2月21日
帖子:72
所在地:美国

发布发表:2008年11月20日,星期四,12:21 pm
引用回复

我已经尝试过此查询,它可用于获取前5行

选择 *
从表1
B订购
仅获取前5行

其中B应该是列名或列号。
回到顶部
查看用户资料 发送私信
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月20日,星期四,12:24 pm
引用回复

是的,它适用于销售,但是不适用于插入。
我可以使用游标插入,但由于性能原因,我不想插入。

我想在一个插入语句中完成此操作。
回到顶部
查看用户资料 发送私信
阿伦·拉吉(Arun Raj)

主持人


已加入:2006年10月17日
帖子:2481
位置:@我的办公桌

发布发表:2008年11月20日,星期四,12:32 pm
引用回复

引用:
不论我在同一张表中还是在另一张表中,都必须使用随机函数,因为我必须使用上面的五张表来随机地从中售出价值。

上述声明是什么意思。目前尚不清楚您在尝试什么。插入/选择/删除。你已经提到了所有 icon_rolleyes.gif 。您是要从25行中筛选出5行并在输出中显示,还是要从表中物理删除某些行?
回到顶部
查看用户资料 发送私信
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月20日,星期四,12:51 pm
引用回复

是的,我只想在一个新表中过滤掉5行,或者可以使用同一表,因为我不需要其余的行。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2008年11月20日,星期四,9:01 pm
引用回复

您好,

您需要专注于获得所需的结果。 。 。

引用:
我可以使用游标插入,但由于性能原因,我不想插入。
您是否表现出一些主要的性能问题 如此精确 需求?忘记所有游标都不好的谣言。 。 。

我建议,如果您想读取结果的前5行,并使用游标将它们插入其他位置,则性能上不会有任何差异(或几乎无法衡量)。
回到顶部
查看用户资料 发送私信
尼克希尔MF10

新的用户


已加入:2008年11月19日
帖子:8
地点:浦那

发布发表:2008年11月21日,星期五,上午10:48
引用回复

5行只是一个示例。
我必须处理数千行。

请提出使用单个插入查询的任何方法。 icon_sad.gif
回到顶部
查看用户资料 发送私信
黑暗之星13

新的用户


已加入:2008年11月6日
帖子:46
地点:菲律宾马尼拉

发布发表:2008年11月21日星期五,上午11:51
引用回复

嗨,尼克,
您的示例应代表您真正想要实现的目标。

如果必须插入数千行(甚至只有5行),我认为您不能在一条select-insert语句中做到这一点。使用光标选择每一行然后插入它们是通常的方法。我认为这样做没有任何问题。

但是,如果您想进行MASS INSERT,则只需一个简单的操作即可


码:
插入表
选择 *
从表
仅获取前5行


您不需要ORDER BY。为什么?我们在表中插入数据以填充它们。当我们想在ORDER中获取记录时,我们在进行选择时会发出ORDER BY。
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
没有新帖 帮助编写SQL查询 DB2 1
没有新帖 在合并查询中需要帮助 DB2 4
没有新帖 我们可以在主U中插入重复项吗? DB2 2
没有新帖 用UR插入会话表 DB2 0
没有新帖 将行从File1插入到File 2 ... DFSORT / ICETOOL 1
搜索我们的论坛:

回到顶部