求助:查询两列最大值的SQL

g394594141 2009-11-09 09:43:05
表结构
列1 列2
1 2008 2009
2 2007 2006

想得到的结果
select * from 表名 where Year(getdate())> (列1和列2的最大值)

第一行的数据 2008,2009, 求出两列最大值就是2009
第二行的数据 2007,2006, 求出两列最大值就是2007


如果Year(getdate()) 是2009,就只能检索出第二条数据出来。

不知道我说清楚没有。

请大侠们帮帮忙~·

数据库是Sqlserver2005
...全文
209 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
g394594141 2009-11-09
  • 打赏
  • 举报
回复
谢谢各位,我本机运行不起,只有等明天去公司在验证。而公司里我又上不起网,所以不知道各位的是不是对的。不过我想应该能行,所以我先结贴了~~

再次感谢~~
--小F-- 2009-11-09
  • 打赏
  • 举报
回复
select 
*
from t
b
where
Year(getdate())> case when col1 > col2 then col1 else col2 end
SQL77 2009-11-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happyflystone 的回复:]
select * from 表名 where Year(getdate())> case when col1 > col2 then col1 else col2 end
[/Quote]
我还用减了,晕,直接比多好呀
SQL77 2009-11-09
  • 打赏
  • 举报
回复
select * from 表名 where Year(getdate())>
CASE WHEN COL1-COL2<0 THEN COL2 ELSE COL1 END
?
百年树人 2009-11-09
  • 打赏
  • 举报
回复
select * from 表名 
where Year(getdate())>case when 列1>列2 then 列1 else 列2 end
liangCK 2009-11-09
  • 打赏
  • 举报
回复
就两列..
case when比较一下.

case when 列1>列2 then 列1 else 列2 end
-狙击手- 2009-11-09
  • 打赏
  • 举报
回复
select * from 表名 where Year(getdate())> case when col1 > col2 then col1 else col2 end
SQL77 2009-11-09
  • 打赏
  • 举报
回复
SELECT CASE WHEN COL1-COL2<0 THEN COL2 ELSE COL1 END FROM TB
?

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧