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