2014-06-27 5 views
0

J'ai une table comme celui-ciPeut-on simplifier cette requête

 FirstCity Secondcity Distance RoadName RoadStatus 
     008  007  4.600 A4  Good 
     008  020  4.400 A4  Good 
     005  008  4.300 A3  Good 

Je veux sélectionner des lignes pour une ville ID particulier de la première ville ou de la seconde city.Furthermore prendre ma carte d'identité de la ville est 006. Je souhaite que tous les enregistrements dont le numéro de ville est 006. Mais je ne veux pas que le 006 soit affiché. Je ne veux que l'autre numéro de la ville de l'enregistrement, peu importe de quelle colonne il s'agit avec Distance, roadName et Road Status. Ce que j'ai essayé est ceci.

SELECT * FROM DirectNodes 
    WHERE FirstCity='008' OR SecondCity='008'; 

cela me donne toutes les cinq colonnes. Je veux seulement l'autre numéro de la ville des enregistrements ayant 008 sans 008. Ma sortie devrait ressembler à ceci.

   City Distance RoadName RoadStatus 
       007  4.600 A4  Good 
       020  4.400 A4  Good 
       005  4.300 A3  Good 

Quelqu'un peut-il me dire comment y parvenir.

+0

Que signifie: "il me donne tous les quatre dossiers"? Je ne vois que 3 enregistrements dans votre exemple? – Jens

+0

@Jens Édité. J'espère que vous pouvez le comprendre maintenant. – Sahil

+0

@Jens Si vous exécutez l'instruction 'SELECT' mentionnée, vous obtiendrez quatre enregistrements ... Mais il s'attendait à seulement 3 enregistrements ... – Jesuraja

Répondre

4

Essayez cette

Select case when firstcity = '008' then secondcity else firstcity end 'City', 
     Distance,Roadname,Roadstatus 
from table 
where (firstcity= '008' or secondcity ='008') 
+0

ouais ça marche très bien. Je vous remercie. – Sahil

+0

Ensuite, approuvez la réponse en la cochant – Azar

+0

@Azar J'ai apprécié votre réponse rapide ... Bien ... – Jesuraja

0

Essayez ceci:

SELECT CASE FirstCity WHEN '008' THEN SecondCity ELSE FirstCity END AS City, 
     Distance, RoadName, RoadStatus 
FROM  DirectNodes 
WHERE FirstCity = '008' OR SecondCity = '008' 
+0

Pourquoi utilisez-vous une instruction Insert? La requête d'Azar fonctionne correctement. – Sahil

+0

J'ai élaboré un exemple en fonction de vos besoins (j'ai clairement mentionné «j'ai essayé» avant l'exemple ...). La première déclaration est la réponse et il n'y a pas non plus de condition WHERE requise. Vous pouvez essayer .. – Jesuraja

+0

@Sahil S'il vous plaît vérifier la réponse maintenant ... – Jesuraja