2010-12-04 19 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 

如何編寫一個查詢來選擇一月和四月如何選擇之間的SQL

+2

我敢肯定你已經意識到這一點,但以防萬一你不是:你的數據庫設計很差。您應該使用日期或整數字段來存儲月份。 – 2010-12-04 10:16:20

+0

+1一個很好的問題,很好的回答 – Andomar 2010-12-04 11:15:00

+1

他在他的博客中發佈了他爲他工作的答案,就好像它是他的想法一樣...... – VVS 2010-12-04 11:56:31

回答

3

之間的數據你會做你的工作更容易,如果你將存儲實際日期或月數月。

如果您必須使用當前的表格結構,則需要將月份名稱轉換爲相應的數字。論文數量可以比:

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 
1

隨着數據不具可比性,你需要在範圍內提供所有可能的值:

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