2011-01-04 2 views

ответ

3

Вы можете попробовать

Select * 
from some_table 
order by some_column asc 

Это будет сортировать результаты по some_column и поместить их в порядке возрастания. Используйте desc вместо asc, если вы хотите по убыванию. Или вы хотели иметь заказ в самом физическом хранилище?

Я считаю, что можно указать упорядочение/сортировку индексированного столбца в хранилище. Это, вероятно, ближе всего к тому, что вы хотите. Я обычно не использовать эту функцию, индекс сортировки, но и для получения дополнительной информации см: http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5010.htm#i2062718

+0

Физическое хранилище, возможно ли это? –

+0

@Jacob: Обновлено, добавлена ​​ссылка на спецификации оператора CREATE INDEX, которые показывают, как можно упорядочить индекс в хранилище. – FrustratedWithFormsDesigner

+0

Я мог ошибаться, но я думаю, что ОП ссылался на порядок хранения самих данных таблицы, а не на индекс – bhangm

0

Что вы на самом деле имеете в виду?

Вы только просите о порядке заказа?

http://www.1keydata.com/sql/sqlorderby.html

+2

Нет Я имею в виду фактические данные в таблице. –

+0

Какова цель? индекс, похоже, является более близким ответом на ваш странный вопрос. – ykatchou

0

Oracle 10g Экспресс поддерживает ANSI SQL, как и большинство RDBM, так что вы можете сортировать стандартным способом:

SELECT * FROM Persons ORDER BY LastName 

Хороший учебник on SQL можно найти здесь: w3schools SQL

У Oracle Express есть некоторые ограничения по сравнению с Enterprise Edition, но не на базовом диалекте SQL, который он поддерживает.

2

Возможно, вы можете использовать организованную индексами таблицу - IOT, чтобы гарантировать, что данные хранятся упорядоченными по индексу.

Посмотрите на пункте физических свойств заявления CREATE TABLE: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#i2128663

Какова проблема, которую вы пытаетесь решить, хотя? IOT может или не может быть тем, что вы должны использовать.

1

Как определено реляционной моделью, строки и столбцы в таблице неупорядочены. По крайней мере, это теория.

На практике, если вы хотите, чтобы данные выходили из запроса в определенном порядке, вы всегда должны использовать предложение ORDER BY. Порядок вывода не является гарантией, если вы не предоставите это.

При вставке в таблицу можно использовать ORDER BY, но это не гарантирует порядок вывода данных. Запрос может появляться в том же порядке каждый раз ... но это не значит, что он выйдет в том же порядке в следующий раз.

Были проблемы с выпуском Oracle 10g, в котором не были выбраны агрегированные запросы (с GROUP BY), потому что пользователи полагались на данные, которые были отсортированы как побочный эффект группировки. С введением HASH GROUP BY в дополнение к SORT GROUP BY люди были пойманы. Это было полезным напоминанием о том, что ORDER BY всегда следует использовать.

+0

, что, если 'ORDER BY' не вариант? Это занимает слишком много времени в моем случае – Toolkit

Смежные вопросы