Приоритизация данных, сортируя в DbXML

Используя XQuery в DBXML я хочу расположить по приоритетам некоторые элементы в зависимости от многократного набора узлов к определенным ценностям.

Я хочу быть в состоянии показать три из этого элементы наверху и остальные ниже.


   
       5550
       ABC
   
   
       5550
       DEF
   
   
       5550
       DEF
   
   
       XYZ
       ABC
   

Мы получаем этот xml на странице поиска недвижимости. У реальных результатов поиска будут сотни отчетов, но мы только берем первые 10 отчетов, чтобы показать на первой странице. Здесь мы должны применить порядок сортировки, который покажет свойства агентства "ABC", сопровождаемого почтовым индексом "XYZ" всегда на вершине. Если у полного набора результатов нет этих агентств, мы можем показать им в нормальном порядке сортировки.

1
nl ja de
Вы взглянули на заказ в XQuery? Если да, пожалуйста более конкретны по поводу вашей проблемы, включают данные в качестве примера и желаемую продукцию и если you' ve получил что-либо некоторый пример кода.
добавлено автор Jens Erat, источник
Намного лучше теперь вы возражали бы обновлять свой вопрос? Для будущих вопросов, пожалуйста, включайте некоторые типовые данные/код, это намного более точно, чем некоторый текст только (который дополнительно испытывает недостаток в надлежащем punctation). You' ре, просящее других провести время при помощи вам бесплатно; пожалуйста, сделайте его максимально легким для них - вы найдете намного больше людей готовым помочь вам.
добавлено автор Jens Erat, источник
Намного лучше теперь вы возражали бы обновлять свой вопрос? Для будущих вопросов, пожалуйста, включайте некоторые типовые данные/код, это намного более точно, чем некоторый текст только (который дополнительно испытывает недостаток в надлежащем punctation). You' ре, просящее других провести время при помощи вам бесплатно; пожалуйста, сделайте его максимально легким для них - вы найдете намного больше людей готовым помочь вам.
добавлено автор Jens Erat, источник
Вы взглянули на заказ в XQuery? Если да, пожалуйста более конкретны по поводу вашей проблемы, включают данные в качестве примера и желаемую продукцию и если you' ve получил что-либо некоторый пример кода.
добавлено автор Jens Erat, источник
@Ranon, жаль о том, что не был подробным в моем вопросе, поскольку я препятствовал чему-то еще после регистрации этого.. Я собираюсь отредактировать вопросы теперь
добавлено автор Rcrd 009, источник
@Ranon, жаль о том, что не был подробным в моем вопросе, поскольку я препятствовал чему-то еще после регистрации этого.. Я собираюсь отредактировать вопросы теперь
добавлено автор Rcrd 009, источник
@Ranon благодарит за ответ. У меня есть сотни данных, чтобы сортировать и сказать, что "бренд" - одна область в той базе данных. Я делаю этот заказ, фильтруя некоторые данные. Если у фильтрованных данных есть "Brand=Sony", это должно всегда прибывать во главе набора результатов. Например, у вас есть некоторые представляемые продукты, и вы хотите показать, что те продукты наверху всегда, Пожалуйста, сообщают мне, нужно ли вам больше деталей. Снова заранее спасибо
добавлено автор Rcrd 009, источник
@Ranon благодарит за ответ. У меня есть сотни данных, чтобы сортировать и сказать, что "бренд" - одна область в той базе данных. Я делаю этот заказ, фильтруя некоторые данные. Если у фильтрованных данных есть "Brand=Sony", это должно всегда прибывать во главе набора результатов. Например, у вас есть некоторые представляемые продукты, и вы хотите показать, что те продукты наверху всегда, Пожалуйста, сообщают мне, нужно ли вам больше деталей. Снова заранее спасибо
добавлено автор Rcrd 009, источник

2 ответы

Flwor-выражения XQUERY знают заказ , который может заказать произвольными значениями, которые могут также быть вычислены. Используйте выражение, которое решает - ли некоторый продукт "лучший продукт" или не (приводящий к булеву значению).

Впоследствии разделите последовательность результата, чтобы подчеркнуть только много результатов, и предел общему количеству заканчивается.

let $highlighted := 3
let $total := 10
let $sorted := 
  for $p in //property
  (: order by highlighting predicate :)
  order by $p/agency eq "ABC" and $p/zip_code eq "XYZ" descending
  return $p
return (
  (: first $highlighted elements as defined by predicates above :)
  $sorted[ position() = (1 to $highlighted) ],
  (: the other elements, `/.` forces sorting back to document order :)
  $sorted[ position() = ($highlighted + 1 to $total) ]/.
)

Булево выражение может получить произвольный комплекс для того, чтобы быть более точным на лучших продуктах, как ограничение телевизорами или определение некоторой минимальной цены.

3
добавлено
Пожалуйста, уделите немного больше внимания на удобочитаемый код; сжатие целых flwor-выражений в одних линиях, которые обернуты многократно определенно, плохо кодирует стандарт (и без форматирования, по крайней мере я don' t понимают что-либо того кода). Если вы действительно хотите ответы, прикладываете больше усилий к вашим вопросам.
добавлено автор Jens Erat, источник
Вы? Я не вижу обновления.
добавлено автор Jens Erat, источник
Я обновил свой ответ, чтобы соответствовать вашему вопросу. Я отредактировал это, также чтобы быть более точным и уменьшил его до фактического вопроса; возможно, взгляните на него, если это все еще напоминает вашу проблему.
добавлено автор Jens Erat, источник
@Ranon.. пожалуйста, проверьте мой обновленный вопрос
добавлено автор Rcrd 009, источник
информация была действительно полезна, мы почти сделаны, но имеем еще одну проблему. Я обновил вопрос. Можно ли, пожалуйста, проверить?
добавлено автор Rcrd 009, источник
Извините, я думал, что это отправило. Так или иначе это не было спасено.. Пожалуйста, дайте мне несколько минут, поскольку я редактирую вопрос теперь
добавлено автор Rcrd 009, источник
отредактированный вопрос теперь
добавлено автор Rcrd 009, источник

Flwor-выражения XQUERY знают заказ , который может заказать произвольными значениями, которые могут также быть вычислены. Используйте выражение, которое решает - ли некоторый продукт "лучший продукт" или не (приводящий к булеву значению).

Впоследствии разделите последовательность результата, чтобы подчеркнуть только много результатов, и предел общему количеству заканчивается.

let $highlighted := 3
let $total := 10
let $sorted := 
  for $p in //property
  (: order by highlighting predicate :)
  order by $p/agency eq "ABC" and $p/zip_code eq "XYZ" descending
  return $p
return (
  (: first $highlighted elements as defined by predicates above :)
  $sorted[ position() = (1 to $highlighted) ],
  (: the other elements, `/.` forces sorting back to document order :)
  $sorted[ position() = ($highlighted + 1 to $total) ]/.
)

Булево выражение может получить произвольный комплекс для того, чтобы быть более точным на лучших продуктах, как ограничение телевизорами или определение некоторой минимальной цены.

3
добавлено
Я обновил свой ответ, чтобы соответствовать вашему вопросу. Я отредактировал это, также чтобы быть более точным и уменьшил его до фактического вопроса; возможно, взгляните на него, если это все еще напоминает вашу проблему.
добавлено автор Jens Erat, источник
Пожалуйста, уделите немного больше внимания на удобочитаемый код; сжатие целых flwor-выражений в одних линиях, которые обернуты многократно определенно, плохо кодирует стандарт (и без форматирования, по крайней мере я don' t понимают что-либо того кода). Если вы действительно хотите ответы, прикладываете больше усилий к вашим вопросам.
добавлено автор Jens Erat, источник
Вы? Я не вижу обновления.
добавлено автор Jens Erat, источник
@Ranon.. пожалуйста, проверьте мой обновленный вопрос
добавлено автор Rcrd 009, источник
информация была действительно полезна, мы почти сделаны, но имеем еще одну проблему. Я обновил вопрос. Можно ли, пожалуйста, проверить?
добавлено автор Rcrd 009, источник
Извините, я думал, что это отправило. Так или иначе это не было спасено.. Пожалуйста, дайте мне несколько минут, поскольку я редактирую вопрос теперь
добавлено автор Rcrd 009, источник
отредактированный вопрос теперь
добавлено автор Rcrd 009, источник