【问题标题】: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 之间的确切位置days 和 To 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 天以上。