我在SELECT
语句中使用我的序列时遇到了一些问题。
SELECT
c.cust_name,
c.site,
customer_id_seq.nextval
FROM
customer c
WHERE
c.customer_id IS NULL
ORDER BY
c.site_code ASC
;
给我一个错误:
- 00000 - “此处不允许使用序列号” *原因:指定的序列号(CURRVAL或NEXTVAL)是 不当 在声明中。 *操作:删除序列号。
醇>
这可能是显而易见的我做错了所以希望这将是一个简单的答案。
答案 0 :(得分:14)
您不能在ORDER BY
的查询中使用序列。
删除ORDER BY
或放入子查询:
SELECT q.*, customer_id_seq.nextval
FROM (
SELECT c.cust_name,
c.site
FROM customer c
WHERE c.customer_id IS NULL
ORDER BY
c.site_code ASC
) q
答案 1 :(得分:1)
for IBM Imformix
在SELECT语句中,您不能在以下上下文中指定NEXTVAL或CURRVAL:
答案 2 :(得分:1)
为什么不使用rownum而不是从序列中获取值?