当我在SQL开发人员中使用select *语句时,返回的列的顺序不是表中定义的顺序。如果我在连接窗格中查看表本身,则在列选项卡下,列的顺序正确并且分配了正确的列ID。当其他人使用不同的PC在表上运行查询时,列将以正确的顺序显示。这让我相信这是我的SQL开发人员的一个设置。如果我更正,我该如何更改呢。
EX。列按照列选项卡中的列ID按此顺序排列。当从任何其他PC上对此表执行select *时,显示从左到右的顺序:
1. MESSAGE_ID
2. SOURCE_ID
3. EVENT_ID
4. WHEN_CREATED
5. CONTAINER_ID
6. CONTAINER_TYPE
7. WAVE_NUMBER
8. LOCATION
9. DEST_LOCATION
10. ITEM_NAME
11. BATCH_NUMBER
12. BARCODE
13. CONTAINER_QUANTITY
14. CUBE_VOLUME
15. ORDER_ID
16. PICK_STATUS
17. PICK_PUT_LOCATION
18. ITEM_QUANTITY
19. PICKED_QUANTITY
20. REQUIRED_QUANTITY
21. MOD_DATE
22. USER_ID
但是,当我在我的电脑上的sql developer中从这个表中选择*时,这是它们从左到右显示的顺序:
1. WAVE_NUMBER
2. LOCATION
3. ITEM_NAME
4. BATCH_NUMBER
5. BARCODE
6. CONTAINER_ID
7. CONTAINER_QUANTITY
8. CUBE_VOLUME
9. ORDER_ID
10. PICK_STATUS
11. PICK_PUT_LOCATION
12. ITEM_QUANTITY
13. PICKED_QUANTITY
14. REQUIRED_QUANTITY
15. MOD_DATE
16. USER_ID
17. MESSAGE_ID
18. SOURCE_ID
19. EVENT_ID
20. WHEN_CREATED
21. CONTAINER_TYPE
22. DEST_LOCATION
答案 0 :(得分:13)
答案 1 :(得分:0)
在查询中添加空格以中断匹配。我在Oracle Database Express Edition 11.2.0.2.0版中遇到了这个问题,因为我重新定义了一个带有新列顺序的表,并且我在使用SQL Developer版本1.1.3 build MAIN-27.69(包括它)时无法提取新的排序顺序用数据库软件。为我的查询添加空格就可以了。
SELECT * FROM my_tab;
SELECT * FROM my_tab;