2017-01-02 6 views
1

Ein Tabellenname als Spieler in der Tabelle einige Spalten & Daten sind wie folgt:Ausgang nicht richtig erhalten gemäß der Abfrage

PID | PNAME | CITY | TEAM | GEHALT | NO_OF_PENALTIES

1001 ozil Istanbul Deutschland 500000 1

1002 messi Madrid Arsenal 500000 2

1003 ronaldo Manc uk 600000 1

1004 puyol sussex Deutschland 400000 3

1005 fabregas manchester uk 450000 2

1006 costa ankar ein Truthahn 400000 3

1007 beckham london uk 600000 2

Dies ist die table.Write eine Abfrage, die ich aufnehmen wollen, wenn Teamnamen "Deutschland" & no_of_penalties = 1, dann ist ich das record.If Team erhalten möchten Name ist "uk" & no_of_penalties = 2 dann möchte ich nicht den Rekord bekommen. Mittelwert gemäß den oben genannten Aufzeichnungen nach der Abfrage möchte ich den Datensatz mit pid = 1001 & pid = 1003 erhalten. Aber wenn ich die Abfrage schreiben, wie unten dargestellt:

select * from player where (team='germany' and no_of_penalties=1) or not (team='uk' and no_of_penalties=2) and team in ('germany','uk'); 

Dann nach oben Abfrage ausführen, die Ausgabe wie mit pid aussieht = 1001, 1003, 1004, wie unten enter image description here

gezeigt So könnten Sie mir bitte lösen das Problem?

+0

akzeptiert wo? – GurV

+2

Hinweis: 'WHERE',' AND'. –

+0

Möchten Sie nur die Datensätze mit Stadt DC und Flagge Y auswählen? – GurV

Antwort

1

Ist das, was Sie wollen:

SELECT sno, 
    city_name, 
    DATE, 
    CASE 
    WHEN city_name = 'CA' and 
    THEN 'N' 
    WHEN city_name = 'DC' 
    THEN 'Y' 
    ELSE flag 
    END flag 
FROM your_table; 
+1

Endlich habe ich das Problem gelöst, dass der Code "select * from player where (team = 'germany' und no_of_penalties = 1) oder (team = 'uk' and no_of_penalties! = 2) ist;" –

+0

@MdWasi Gut für dich. – GurV