Я использую CFSpreadsheet для чтения файла .xls.Отличный QoQ автоматически применяет порядок по
Файл имеет около 3000 копий, которые я могу смело игнорировать, так я думал, что сделать select distinct
сравнению с предыдущим кварталом, но когда я делаю это, результаты упорядочиваются, как будто order by col_1, col_2
был добавлен в запрос, который очень плохо.
<cfspreadsheet query = "qSheet" ...>
<cfquery dbtype="query" name = "qDistinctSheet">
select distinct
col_1
, col_2
from
qSheet
</cfquery>
<cfdump var = "#qDistinctSheet#">
Если удалить distinct
я получить ожидаемые результаты, которые должны быть:
- [пустая строка]
- Имя
- Джон
- Джон
- Адам
- Стив
- Боб
- Боб
Когда я добавляю отчетливый я получаю
- [пустая строка]
- Адам
- Боб
- Джон
- Имя
- Стив
Любая идея, как предотвратить это нежелательное упорядоченность?
Редактировать
End решение применить номер строки и использовать группу, как это было предложено Мэтта и Дэна
<cfset ids = []>
<cfloop query="qSheet">
<cfset ids[qSheet.currentRow] = qSheet.currentRow>
</cfloop>
<cfset queryAddColumn(qSheet,"id",ids)>
<cfquery dbtype="query" name="qDistinct">
SELECT
col_1
, col_2
, min(ID) AS firstID
FROM
qSheet
GROUP BY
col_1
, col_2
ORDER BY
firstID
</cfquery>
. Каков прецедент для того, чтобы их не заказывали - не знаете, почему это имеет значение при использовании 'distinct'. –
Есть ли номер строки в вашем запросе cfspreadsheet? Если это так, вы можете заказать это. –
@MattBusche, добавляющий отдельный идентификатор (или номер строки), вернет все строки – Travis