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

请问一个很少用到的单表操作SQL语句

2013-08-01 
请教一个很少用到的单表操作SQL语句举例如下CREATE TABLE #AA(uid int IDENTITY, a varchar(5),b varchar(

请教一个很少用到的单表操作SQL语句
举例如下

CREATE TABLE #AA(uid int IDENTITY, a varchar(5),b varchar(6))

INSERT INTO #AA (a,b)
select 'A158','AAAA' UNION ALL
select '','AABBA' UNION ALL
select '','AAXA' UNION ALL
select '','AACA' UNION ALL
select 'A159','AAAA' UNION ALL
select '','AABBA' UNION ALL
select '','AAXA' UNION ALL
select '','AACA' UNION ALL
select 'A168','AAAA' UNION ALL
select '','AABBA' UNION ALL
select '','AAXA' UNION ALL
select '','AACA' UNION ALL
select 'A178','AAAA'

我需要更新a列为空的行,数据取得逻辑就是小于(用uid做为参考)自己并且离自己最近的,a列不空的数据?如何处理 SQL
[解决办法]
CREATE TABLE #AA(uid int IDENTITY, a varchar(5),b varchar(6))
INSERT INTO #AA (a,b)
select 'A158','AAAA' UNION ALL
select '','AABBA' UNION ALL
select '','AAXA' UNION ALL
select '','AACA' UNION ALL
select 'A159','AAAA' UNION ALL
select '','AABBA' UNION ALL
select '','AAXA' UNION ALL
select '','AACA' UNION ALL
select 'A168','AAAA' UNION ALL
select '','AABBA' UNION ALL
select '','AAXA' UNION ALL
select '','AACA' UNION ALL
select 'A178','AAAA'

select * from #AA

update t1
set a=(select top 1 a from #AA t2 where t2.uid<=t1.uid and t2.a<>'' order by a desc)
from #AA t1

select * from #AA
drop table #AA

/*
1A158AAAA
2A158AABBA
3A158AAXA
4A158AACA
5A159AAAA
6A159AABBA
7A159AAXA
8A159AACA
9A168AAAA
10A168AABBA
11A168AAXA
12A168AACA
13A178AAAA
*/

热点排行