У меня есть запрос, который возвращает список SIM-карт. Каждая SIM-карта связана с клиентом. SIM-карты находятся в таблице T_SIM, а клиенты находятся в таблице T_CUSTOMER. Между одним клиентом может быть более одной SIM-карты. При возврате SIM-карт он также возвращает информацию о клиенте.данные не получены в том же порядке
Таблица T_SIM будет иметь ключ переднего края таблицы T_CUSTOMER.
Этот вопрос:
- Сначала выполнить запрос, потребовав 100 лучших записей, делая заказ CUSTOMER_CODE в порядке возрастания.
- Теперь запустите тот же запрос, запросив 1000 записей, выполнив заказ CUSTOMER_CODE в порядке возрастания.
Здесь, в пункте №2, в результатах 1000 записей первые 100 записей не такие же, как в пункте № 1. Записи перепутались. Порядок не согласован.
Чтобы решить эту проблему, я использовал ROWID вместе с заказом CUSTOMER_CODE.
Но решение не принято клиентом.
Не могли бы вы предложить любую другую альтернативу для решения проблемы. Тип данных CUSTOMER_CODE является VARCHAR2
Ниже приведен запрос:
SELECT TT.SIM_ID,
TT.IMSI,
TT.MSISDN,
TT.SECONDARY_MSISDN,
TT.CUSTOMER_ID,
TT.SIM_STATE,
TCU.CUSTOMER_CODE
FROM T_SIM TT
LEFT OUTER JOIN T_CUSTOMER TCU
ON TT.CUSTOMER_ID = TCU.CUSTOMER_ID
WHERE 1 = 1
AND TT.SIM_ID IN
(SELECT SIM_ID
FROM
(SELECT *
FROM
(SELECT Z.*,
ROWNUM RNUM
FROM
(SELECT TT.SIM_ID
FROM T_SIM TT
LEFT OUTER JOIN T_CUSTOMER TCU
ON TT.CUSTOMER_ID = TCU.CUSTOMER_ID
WHERE 1 =1
ORDER BY TCU.CUSTOMER_CODE ASC
) Z
WHERE ROWNUM <= 1000
)
WHERE RNUM >= 0
)
)
ORDER BY TCU.CUSTOMER_CODE ASC
Результат в обоих случаях делается заказ по CUSTOMER_CODE но SIMS, принадлежащие к ним не идут в том же порядке.
ли ваш код клиента 'VARCHAR2' или' NUMBER' – Exhausted
@ Вычеркнуто Это не должно иметь значения, оно должно быть последовательным. – Barmar
Пожалуйста, разместите полный запрос, который вы используете. – Barmar