在Oracle SQL中,如何通过序数位置选择列?

3

我正在学习这个数据库,并想根据其位置查找列数据,就像这样:

select * from V$RESERVED_WORDS where COLUMNS.FIRST like '%'

然而,这似乎不起作用。我得到了这个错误:
select * from V$RESERVED_WORDS where COLUMNS.FIRST like "%"
Error at Command Line:10 Column:57
Error report:
SQL Error: ORA-00904: "%": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

我正在使用Oracle SQL。如果有任何提示,将不胜感激。


1
'%'还是"%" - user743382
1
我不确定我理解问题的意思。columnsfirstcolumns.first都不是v$reserved_words中的列。那么你在这个视图中想要找到什么呢? - Justin Cave
1
使用All_Tab_Cols作为表中列名及其相应位置的查询语句:Select * from all_tab_cols where Owner = 'SCHEMANAME' - xQbert
2
你是想说“展示所有在v$reserved_words中第一列为'%‘的行吗?”如果是这样,那不是SQL语言允许的(也不是很有意义的事情)。在这种情况下,第一列将始终是“keyword”,那为什么不直接使用它呢?如果不能保证第一列始终相同(即它是一个用户定义的视图,其中列顺序可能会更改),那么依赖列顺序特别是不同数据类型会表现出不同行为的地方就更没有意义了。 - Justin Cave
@JustinCave - 谢谢,我明白了。我会使用关键字并查看。 - Caffeinated
显示剩余3条评论
1个回答

1

您不能使用序数,但需要指定列名。您的查询语句:

SELECT * FROM V$RESERVED_WORDS
WHERE KEYWORD LIKE '%';

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