如何在Oracle 11g中使用SELECT语句创建表

5
我想从另一个表中创建表格 我尝试了以下代码
CREATE TABLE AS tbl_01
As
SELECT a.col1 c1, a.col2 c2, MAX(a.col3 c3)
FROM tbl a
WHERE flag= 2
GROUP BY col1, col2

这个查询已经运行,但是当我要在数据库浏览器中展开列时,它会出现错误将DBNULL类型转换为整数类型无效


你在处理oracle数据库的时候为什么添加了mysql标签?另外,能否用desc tbl来描述表格tbl。而且,既然已经有另一个表格中的数据,为什么还要首先创建这个表格呢? - Lalit Kumar B
@LalitKumarB- 因为我想要存储并使用带条件的相同选择列以创建下一个表。我不知道如何使用 'desc tbl'?请解释一下。 - dwan
@a_horse_with_no_name- 我尝试将别名保留在外部括号中,但不起作用。如果我只使用select语句,则查询正常工作,但我想创建具有相同数据的表。 - dwan
再说一遍:这是你正在使用的工具出现的问题。你使用的是哪个SQL客户端?tbl.col3是什么数据类型? - user330315
不要这样。无论如何,我找到了解决方案。SQL客户端没有任何问题。一切都很好。 - dwan
显示剩余4条评论
1个回答

11

将max函数中的别名放在括号外并尝试。此外,您使用了as两次。已进行更正。

CREATE TABLE tbl_01
As
SELECT a.col1 c1, a.col2 c2, MAX(a.col3) c3
FROM tbl a
WHERE flag= 2
GROUP BY col1, col2

两次使用 AS 是错误的。我尝试在括号外给别名,但是当展开列时仍然遇到相同的错误:从 DBNull 转换为整数无效 - dwan
@Utsav- 当我只使用select语句时,它可以正常工作。那么如何使用这些数据创建表格呢? - dwan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接