我在Oracle DB中执行一个简单的SELECT语句,需要按特定的顺序选择列.例:
表A有100个属性,其中一个是"章",它出现在表中列的某个位置.我需要首先选择带有"章节"的数据,然后选择其余的列,而不是特定的顺序.基本上,我的陈述需要阅读如下内容:
SELECT a.chapter, a. *the remaining columns* FROM A
此外,我不能简单地键入:
SELECT a.chapter, a.*
因为这会选择"章节"两次.
我知道SQL语句看起来很简单,但如果我知道如何解决这个问题,我可以将这个思想推断到更复杂的领域.另外,我们假设我不能只是滚动查找"章节"列并将其拖到开头.
谢谢.
你不应该在程序中选择*.随着您的架构的发展,它将引入您还不知道的东西.想想当有人在其中添加整本书的列时会发生什么?您认为非常便宜的查询突然开始带来数兆字节的数据.
这意味着您必须指定所需的每一列.
您最好的选择就是明确选择每一列.
解决这个问题的一种快捷方法是SELECT a.chapter AS chapterCol,a.*FROM table a; 这意味着将有一个列名称chapterCol(假设已经没有列名为chapterCol.;))