Ich habe zuvor MySQL- und Informix-Datenbanken verwendet. Es ist sehr einfach, die ersten 10 Daten in der Tabelle nachzuschlagen: In diesem Artikel werden hauptsächlich die relevanten Informationen von Oracle und Mybatis vorgestellt, um die 10 Daten aus der Tabelle zu implementieren Ich muss darauf verweisen. Ich hoffe, es kann jedem helfen.
Originalversion:
select top * from student
Natürlich können wir es auch komplizierter schreiben, Fügen Sie beispielsweise einige zusätzliche Abfragebedingungen hinzu?
Fragen Sie beispielsweise die Top-10-Studenteninformationen mit einer Punktzahl von mehr als 80 Punkten ab.
Version der Where-Abfragebedingungen hinzugefügt:
select top * from table where score > 80
Aber! ! Es gibt kein Top in Oracle! ! ! ! Wie kann man es erreichen?
Nun, Sie können Rownum verwenden!
Die Originalversion in Oracle
select * from student where rownum < 10
Das Obige scheint nichts Kompliziertes zu sein. . Aber hier stellt sich die Frage: Was ist, wenn wir immer noch eine Punktzahl von mehr als 80 hinzufügen möchten?
Für mich, einen Oracle-Anfänger, ist es wirklich mühsam. Ich habe es gerade hier gepostet, in der Hoffnung, dass es einigen Leuten etwas Mühe erspart!
Oracle hat eine Version der Where-Abfragebedingungen hinzugefügt
select * from( select rownum rn,A.* from student where score > 80) where rn < 10
Analysieren Sie kurz den obigen Code. Tatsächlich werden die Daten mit einer Punktzahl von mehr als 80 zuerst über die eingebettete SQL-Anweisung abgefragt und dann werden die ersten 10 Daten im eingebetteten SQL-Abfrageergebnis ausgewählt
Zum Schluss wird der Mybatis-Code angehängt?
<select id="selectStudent" parameterType="hashmap" resultMap="BaseResultMap"> select * from ( select rownum rn, A.* from student A where STATUS = '99' and score <![CDATA[>]]> #{scores,jdbcType=INTEGER}) where rn <![CDATA[<=]]> #{number,jdbcType=INTEGER} </select>
Die oben genannten Werte und Zahlen sind Variablen
ps: mybatis übernimmt die Oracle-Sequenz, die Werte sind die gleichen Problembehandlungen
<select id="getCode" resultType="java.lang.String"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
Der obige Mybatis-Code erhält beim Aufruf von Check immer den Wert derselben Sequenz die relevanten Informationen, um herauszufinden, ob es sich um ein Caching-Problem bei Mybatis handelt:
plus das useCache="false" flushCache="false"
-Attribut:
<select id="getCode" resultType="java.lang.String" useCache="false" flushCache="false"> select 'TRD'||to_char(sysdate,'yyyymmdd')||lpad(to_char(SQ_ORD_PURCHASE_ID.nextval), 5, '0') code from dual </select>
Verwandte Empfehlungen:
Wie ändert Oracle den Datendateispeicherort des Tabellenbereichs?
Wie ändert man die Reihenfolge der Felder in der Oracle-Datenbanktabelle?
Oracle-Abfrage Tabellenname und Tabellenspaltenname
Das obige ist der detaillierte Inhalt vonOracle kombiniert Mybatis, um 10 Daten aus der Tabelle zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!