2010-12-04 3 views
0
ID  Name   **Month(Varchar column)** 
23  Raj   January 
435 Amit Kumar February 
54  Mohan  March 
546 Mohan  March 
56  Raj   January 
57  Ani   December 
58  Moni   April 
59  Soni   September 

comment écrire une requête pour sélectionner des données entre Janvier et AvrilComment sélectionner mois entre dans SQL

+2

Je suis sûr que vous êtes déjà au courant de cela, mais juste au cas où vous n'êtes pas: votre conception de base de données est pauvre. Vous devez utiliser une date ou un champ entier pour stocker le mois. –

+0

+1 Bonne question avec une bonne réponse – Andomar

+1

Il publie la réponse qui a fonctionné pour lui dans son blog, comme si c'était son idée ... – VVS

Répondre

3

Vous rendre votre travail beaucoup plus facile si vous stocker les dates réelles ou les numéros.

Si vous devez vivre avec la structure de table actuelle, vous devez traduire les noms des mois dans leur numéro correspondant. numéros de thèses peuvent être comparées:

select ID, Name, Month from (
    select ID, Name, Month, 
     case Month 
      when 'January' then 1 
      when 'February' then 2 
      ... 
     end as MonthNo 
    from 
     Table 
) as TranslatedTable 
where 
    MonthNo between 1 and 4 
+0

merci son travaillé – Nagendra

+0

Si vous avez besoin de cela dans plusieurs requêtes, vous pouvez créer un table de recherche pour contenir les champs MonthName et MonthValue. – JeffO

1

Comme vos données ne sont pas comparables, vous devez fournir toutes les valeurs possibles dans la gamme:

select ID, Name 
from TheTable 
where Month in ('January', 'February', 'March', 'April') 
+0

je sais cela mais je dois donner le mois selon la condition donc il n'est pas possible d'utiliser cette requête – Nagendra

Questions connexes