Ich möchte die folgende Abfrage ändern, so dass anstelle der Spalte ORDER.S_ID den Wert der entsprechenden NAME-Spalte aus der Tabelle (namens STORES) S_ID abgerufen bezieht sich auf.Oracle SQL ersetzen eine Return-Spalte mit einem Nullwert
In einigen Fällen ist S_ID jedoch null, in diesem Fall gibt es keine entsprechende Namensspalte. In diesem Fall gibt es noch Aufzeichnungen aus der Ordnung und ORDER Tabellen, die ich COUNT will (*) - ed und somit von der Abfrage angezeigt, so dass die zweite Säule der Ergebnismenge
SELECT
COUNT(*), ORDER.S_ID
FROM
ORDER, ORDERLIST
WHERE
ORDERLIST.O_ID = ORDER.ID AND
ORDER.DATE = '13-APR. -09 19.42.05,259000000'
GROUP BY S_ID;
Beispieldaten null ist:
ORDER Tisch
ID DATE S_ID
----------------------------------------
1 11-APR. -09 19.41.39,187000000 null
2 12-APR. -09 19.42.05,259000000 null
3 13-APR. -09 19.42.41,688000000 null
11 16-APR. -09 22.06.11,169000000 3
ORDER Tisch
O_ID B_ID PRICE
---------------------
3 6 7999
2 2 2000
2 6 7999
1 5 5000
1 1 1000
11 4 4000
11 6 7999
STORES t Lage
ID NAME
----------
1 Store1
2 Store2
3 Store3
Was ich wieder sehen möchte, wenn eine Benutzer-Abfragen für ein Datum, wo der S_ID Wert nicht null ist: (dieser spezielle Fall ist, wenn das Datum 16-April abgefragt. -09 22.06.11,169000000)
COUNT(*) STORENAME
2 Store3
Was ich zurückgegeben werden soll, wenn es null. (für das Datum 13-April Abfrage -09 19.42.41,688000000)
COUNT(*) STORENAME
1 null
Vielen Dank, Ihre Lösung hat einwandfrei funktioniert, genau das, was ich brauchte! Wenn ich mich richtig erinnere, zeigt der SQL-Entwickler Zeitstempel in einem Format an, das aus dem Betriebssystem des Benutzers und seiner Lokalisierung extrahiert wird. Meine werden angezeigt wie die, die ich eingefügt habe * shrug * –
@aurellb Wenn Sie das Datumsformat in SQL Developer ändern wollen, dann gehen Sie zu 'Extras> Einstellungen ...' erweitern Sie dann die 'Database> NLS' Optionen und ändern Sie das Datum oder Timestamp-Format dort (zu etwas wie "YYYY-MM-DD HH24: MI: SS" für ein Datum oder "YYYY-MM-DD HH24: MI: SSXFF" für Zeitstempel). – MT0
Sie können dies in den Einstellungen überschreiben (es gibt einen NLS-Abschnitt) oder mit 'alter session'. Aus reiner Neugier, welcher Ort produziert das? Ich würde Französisch erraten, außer es wäre "Avr." Anstatt "Apr.", denke ich. Die Leerzeichen in der Monatsabkürzung können auch durch Ändern des Standardformats unterdrückt werden. –