【问题标题】:Finding in which category the days falls in the Given Category of table in SQL在 SQL 表的给定类别中查找日期属于哪个类别
【发布时间】:2011-05-27 10:00:59
【问题描述】:

我有一个表,其列为 as,其值为给定

ProvisionType------从天-----到天

  • goodLoan --------- 1-----------------90
  • 支持------------91-------------180
  • 可疑--------------181--------------365
  • 不好----------------365----------------365+

在以下情况下,我可能有一个可能不同的变量,我正在从代码中管理它....但是假设我想找到 200 介于 From 之间的确切位置daysTo Days 所以我得到了正确的Provision Type。所以请任何人都可以帮助我解决这个问题

【问题讨论】:

    标签: mysql sql-server-2005


    【解决方案1】:

    如果您使用的是 SQL Server,那么这应该可以工作。不确定 MySql 是否有 BETWEEN...

    SELECT ProvisionType 
    FROM myTable
    WHERE (myVariable BETWEEN FromDays AND ToDays)
    

    也可以不用BETWEEN...

    SELECT ProvisionType
    FROM myTable
    WHERE myVariable >= FromDays 
    AND myVariable <= ToDays
    

    为此,您应该将最后一条上的 365+ 替换为实际数字,否则 ToDays 字段将需要是 varchar 字段而不是数字。另外,如果提供了 365 的值,它应该属于最后一个类别还是它之前的那个类别?其他类别有一个明显的分界点,但最后几个是重叠的。

    【讨论】:

      【解决方案2】:

      这是否有效(在 SQL Server 中):

      select top 1 ProvisionType
      from table
      where FromDays < 200
      order by FromDays desc
      

      对于 MySQL:

      select ProvisionType
      from table
      where FromDays < 200
      order by FromDays desc
      limit 1
      

      我不确定您为什么需要 FromDays 和 ToDays。这似乎是你在要求重叠和差距。如果您只有 FromDays,则可以保证没有间隙或重叠,并且您不必做聪明的事情来管理最高限制,即。 365 天以上。

      【讨论】:

        猜你喜欢
        • 2020-11-15
        • 2017-06-16
        • 2011-12-14
        • 2023-01-10
        • 2012-03-18
        • 2022-11-14
        • 1970-01-01
        • 1970-01-01
        • 2020-09-02
        相关资源
        最近更新 更多