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

求一语句。该如何解决

2013-10-21 
求一语句。表A有nameage张三20李四25王五0赵六0-----表B有no age125226327------比方我要得到一个结果,搜索

求一语句。
表A有
name  age
张三  20
李四  25
王五  0
赵六  0
-----
表B有
no age
1   25
2   26
3   27
------
比方我要得到一个结果,搜索表A数据,只要年龄为0的,就在表B中随机读取一个。
假如我这样写,select name, case when age='0' then (select top 1 age from B Order By NewID() else age end) from A 。这样每次的结果王五和赵六的值都一样,我需要的是每次王五和赵六都是独立的从表B读取一个值。
求解?
[解决办法]

select name, age from tba where age!=0
union all
select name,age from (select tba.name,tbb.age,row=row_number()over(partition by tba.[name] order by checksum(newid())) from tba,tbb where tba.age=0)t where row=1

热点排行