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

今日的笔试题,求教sql语句

2013-06-19 
今天的笔试题,求教sql语句原表数据rowval1101110221现在需要显示成下面的形式rowval1101110221012102求sql

今天的笔试题,求教sql语句

原表数据
rowval
1101
1102
21

现在需要显示成下面的形式
rowval
1101
1102
2101
2       102

求sql语句
[解决办法]
真恶心的题。

create table #t
(row int,
val int)
insert into #t
        select 1 row,101 val
        union all select 1,102
        union all select 2,1
select distinct t3.row,t2.val from #t t1 join #t t2 on t1.val =t2.row,#t t3

[解决办法]

select * from 
(select distinct row from 表)a,
(select val from 表 where val!=1)b

没看懂,哪里是亮点?
[解决办法]

create table fw
([row] int, val int)

insert into fw
 select 1, 101 union all
 select 1, 102 union all
 select 2, 1


select [row],[val]
from
(select distinct [row] from fw) a
cross join
(select val from fw
 where [row]=(select top 1 [row] 
              from fw 
              group by [row] 
              order by count(1) desc)
) b
order by a.[row],b.val

/*
row         val
----------- -----------
1           101
1           102
2           101
2           102

(4 row(s) affected)
*/

[解决办法]
SELECT  a.row,b.val 
FROM 
(SELECT distinct row FROM tablename) a,
(SELECT  val FROM tablename WHERE row !=2) b

热点排行