首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL SERVER where字句的有关问题

2012-12-20 
SQL SERVER where字句的问题关于这段代码中,当‘王非’这个名字在表中不止一个是怎么办啊?!declare @age int

SQL SERVER where字句的问题

关于这段代码中,当‘王非’这个名字在表中不止一个是怎么办啊?!

declare @age int
set @age=YEAR(GETDATE())
select 学生号,姓名,@age-YEAR(出生日期) as 年龄
from dbo.学生
where 学生号>(select 学生号 from dbo.学生 where 姓名='王非')
and @age-YEAR(出生日期)<(select @age-YEAR(出生日期) from dbo.学生 where 姓名='王非')
[最优解释]


declare @age int
set @age=YEAR(GETDATE())
select 学生号,姓名,@age-YEAR(出生日期) as 年龄
from dbo.学生
where 学生号>(select top(1) 学生号 from dbo.学生 where 姓名='王非')
and @age-YEAR(出生日期)<(select top(1) @age-YEAR(出生日期) from dbo.学生 where 姓名='王非')

[其他解释]
select top 1
select max()都行
[其他解释]
declare @age int
set @age=YEAR(GETDATE())
select 学生号,姓名,@age-YEAR(出生日期) as 年龄
from dbo.学生
where 学生号>all (select 学生号 from dbo.学生 where 姓名='王非')
and @age-YEAR(出生日期)<(select @age-YEAR(出生日期) from dbo.学生 where 姓名='王非') 
[其他解释]
引用:
and @age-YEAR(出生日期)<(select @age-YEAR(出生日期) from dbo.学生 where 姓名='王非') 

换成
and @age-YEAR(出生日期)< all (select @age-YEAR(出生日期) from dbo.学生 where 姓名='王非') 试试看!!
[其他解释]
楼上的方法都可以 +1
[其他解释]
select dateDiff(year,'1986-10-10',getdate()) 为啥不用SQL dateDiff日期函数呢
[其他解释]
嗯嗯,六楼的说的是,新手新手啊

热点排行