David_Knoblich
Returning Observer

Case-insensitive Sortierung in Query

Jump to solution

Guten Tag,

ich möchte in dem Formular einer CMS_INPUT_CHECKBOX redaktionell auswählbare Elemente alphabetisch sortiert anzeigen lassen. Die komponente bindet per include options Datensätze einer Datenquelle ein. Eine Sortierung per Query sortiert jedoch nur case-sensitiv. Ich würde aber gerne alle Elemente, unabhängig der Groß- und Kleinschreibung, alphabetisch sortieren können. Die Verwendung eines Parameters sorgt meines Wissen für keine Option in Richtung String-Manipulation etc.. Welche Möglichkeiten bestehen dort?

Linkvorlage:

<CMS_INPUT_CHECKBOX name="lt_contracts" gridWidth="3" hFill="yes" useLanguages="no">

    <CMS_INCLUDE_OPTIONS type="database">

      <LABELS>

        <LABEL lang="*">#item.name</LABEL>

      </LABELS>

      <QUERY name="XYZ.sort_additional_contract">

        <PARAM name="name">#item.name</PARAM>

      </QUERY>

      <TABLE>XYZ.additional_contract</TABLE>

    </CMS_INCLUDE_OPTIONS>

    <LANGINFOS>

      <LANGINFO lang="*" label="XYZ"/>

    </LANGINFOS>

  </CMS_INPUT_CHECKBOX>

Abfrage XYZ.sort_additional_contract:

<QUERY entityType="additional_contract">

          <ORDERCRITERIA attribute="name"/>

</QUERY>

Diese Frage schließt sich an https://community.e-spirit.com/message/7117#7117 an. Vielen Dank.

1 Solution

Accepted Solutions

Hallo David,

klappt das nicht, wenn man Holgers und meinen Ansatz kombiniert? Eine View erstellen, welche ein spezielle Spalte nur für die Sortierung (die case-insensitive ist z.B. per lower(name0) as sort_name ) einführt.

Nach dieser technischen Spalte kann man dann in FirstSpirit sortieren.

Grüße Marian

View solution in original post

6 Replies
hoebbel
Crownpeak employee

Hallo David,

die Sortierung über den Query überlässt meines Wissens nach der Datenbank die Sortierung und liefert das Ergebnis von dort zurück.

Ein möglicher Lösungsansatz wäre somit, die Sortierung in der Datenbank Case-Insensitive zu machen (sofern das möglich ist)

Ein weiterer Lösungsansatz wäre es, eine Sortierspalte einzufügen und nach dieser zu sortieren, für die Anzeige aber weiterhin #item.name zu verwenden.

Viele Grüsse,

  Holger

Hallo David,

man kann auch, falls es sich um eine externe Datenbank handelt, eine View erstellen, welchen dann die gewüschte Sortierung vornimmt.

Grüße Marian

Hallo Marian,

es handelt sich hierbei um eine Oracle 11gR2 Datenbank. Der Zugriff per SQL-Developer liefert korrekt sortierte Einträge (unabhängig der Groß- und Kleinschreibung) per simpler Sortierfunktion über die Datenanzeige zurück. Ein simples SQL-Statement liefert ebenso korrekt sortierte Datensätze zurück.

SELECT * FROM FS02.ADDITIONAL_CONTRACT ORDER BY NAME0;

Die entsprechende FS-Datenquelle liefert auch nach einem Neustart des FS-Servers keine korrekt sortierten Datensätze zurück. Auf der Datenquelle ist ein Filter anhand der entsprechenden Spalte gesetzt.

Ich habe in den DB-Einstellungen NLS_COMP auf LINGUISTIC gesetzt.

Wie kann ich eine per View erstellte Sortierung auf der Datenquelle bzw. auf der CMS_INPUT_CHECKBOX anwenden? Vielen Dank.

0 Kudos

Hallo David,

klappt das nicht, wenn man Holgers und meinen Ansatz kombiniert? Eine View erstellen, welche ein spezielle Spalte nur für die Sortierung (die case-insensitive ist z.B. per lower(name0) as sort_name ) einführt.

Nach dieser technischen Spalte kann man dann in FirstSpirit sortieren.

Grüße Marian

MichaelaReydt
Community Manager

Hallo David,

ist dieses Posting noch aktuell? Benötigst du noch weitere Hilfe oder konnten Holger und Marian dir bereits helfen? In diesem Fall wäre es super, wenn du die "richtige Antwort" entsprechend markierst.

Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es toll, wenn du sie hier bereitstellst.

Viele Grüße

Michaela

0 Kudos

Hallo Michaela,

danke für die Frage. Die Sache ist bei uns etwas untergegangen. Werde mich die Tage dem Thema wieder widmen und anschließend entsprechend markieren.

Grüße

David

0 Kudos