2016-09-29 3 views
0

Ich habe eine Oracle-Tabelle mit drei clumns und drei Datensätze, wie untenWie erstellt man eine Oracle SQL-Anweisung im folgenden Fall?

ID FIRST_NAME LAST_NAME  
01  Jason  Martin  
02  Alison  Mathews  
03  Robert  Black  

gezeigt ich den Vornamen von einem bestimmten ID auswählen möchten.

Wenn die ID existiert, d. H. Es ist ein Wert zwischen 01, 02 und 03, muss das entsprechende FIRST_NAME angezeigt werden;

Wenn die ID nicht existiert, muss ein * Symbol angezeigt werden. Könnten Sie mir helfen, eine solche Oracle-SQL-Anweisung zu erstellen?

Vielen Dank im Voraus.

Li

+0

Was passiert, wenn es mehr Datensätze sind oder was ist, wenn ich brauche, um Wählen Sie den ersten Namen durch Kombinationen mehrerer Felder aus? – Learner

+0

Wenn Sie eine andere Situation haben, bearbeiten Sie bitte Ihre Frage mit Beispieldaten und dem gewünschten Ergebnis – Aleksej

Antwort

0

Verwenden Sie eine CASE Anweisung:

SELECT ID, 
     CASE WHEN ID IN ('01', '02', '03') THEN FIRST_NAME ELSE '*' END 
FROM yourTable 

Hinweis: Ich nahm an, basierend auf Eingangsdaten, dass die ID Spalte VARCHAR und nicht numerisch aufgrund der führenden Nullen. Wenn ID numerisch ist, dann die Abfrage dies ändern:

SELECT ID, 
     CASE WHEN ID IN (1, 2, 3) THEN FIRST_NAME ELSE '*' END 
FROM yourTable 
2

Sie eine äußere Verknüpfung, um dieses Beispiel mit id = 2:

select coalesce(FIRST_NAME, '*') 
from dual 
left join tablename on id = 2 
+0

Vielen Dank für Ihre Eingabe. Es scheint, dass Ihre Lösung für eine Vielzahl von Fällen verwendet werden kann. – Learner

Verwandte Themen