j*****8 发帖数: 3635 | 1 一个table,有一个column是int的year,给定一个input_year值, 如果表里有这个值则
返回这个值,没有的话返回latest year。有啥简洁的sql语言不? |
d******l 发帖数: 98 | 2 是要写sql function 吗?
一个table,有一个column是int的year,给定一个input_year值, 如果表里有这个值则
返回这个值,没有的话返回latest year。有啥简洁的sql语言不........
【在 j*****8 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 一个table,有一个column是int的year,给定一个input_year值, 如果表里有这个值则 : 返回这个值,没有的话返回latest year。有啥简洁的sql语言不?
|
A*******e 发帖数: 2419 | 3 什么是latest year?如果是离这年最近的之前某年:
select max(Year)
from table
where Year <= input_year
【在 j*****8 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 一个table,有一个column是int的year,给定一个input_year值, 如果表里有这个值则 : 返回这个值,没有的话返回latest year。有啥简洁的sql语言不?
|
l******s 发帖数: 3045 | 4 TSQL:
select top 1 isnull(year, @input_year -1)
from table
where year = @input_year |
j*****8 发帖数: 3635 | 5 不是离input_year最近的之前某年,是离现在最近的某年
【在 A*******e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 什么是latest year?如果是离这年最近的之前某年: : select max(Year) : from table : where Year <= input_year
|
w**p 发帖数: 4080 | 6 四楼答案最优。修改一下基本就是你想要的。
【在 j*****8 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 不是离input_year最近的之前某年,是离现在最近的某年
|
l****e 发帖数: 276 | 7 俩都不对。
举例:有三个年:70,80,90, 用户输入81,
这个RUN 了:
Select isnull((Select yearColumn from yourTable where yearColumn = yearInput
),MAX(yearColumn )) from yourTable
[在 wqjp (闻琴解珮) 的大作中提到:]
:四楼答案最优。修改一下基本就是你想要的。
:
:........... |
l*********u 发帖数: 19053 | 8 select case when year=:input then input
when year <>:input then max(year)
end
from aTable |
|