select name,age,sex,id=identity(int) into # from tb
select b.name b_name,b.age b_age,b.sex b_sex,g.name g_name,g.age g_age,g.sex g_sex
from # b
left join # g
on b.id+1=g.id
where b.id%2=1
drop table #我建了一个表:
表名是:test 
字段是:name(nvarchar) age(int) sex(bit)现在这个语句要怎么套??

解决方案 »

  1.   

    我这个本来就是给fcuandy(手中无剑,心中亦无)  看的你们看这里 就知道我的意思了:
    http://community.csdn.net/Expert/topic/5172/5172887.xml?temp=.265484
    http://community.csdn.net/Expert/topic/5175/5175993.xml?temp=.6251947
      

  2.   

    tb 换成test就好了# 代表的是一个临时表
      

  3.   

    刚才在睡觉,没看,不好意思.--将name,age,sex写入局部临时表#同时生成新的标识列.些时这个id 是从1开始连续的
    select name,age,sex,id=identity(int) into # from tb--这一句,选出#中的奇数行的行集 与 偶数行的行集进行连接, 连接条件是偶数行的行号=奇数行的行号+1. 比如 1与2连,3与4连
    select b.name b_name,b.age b_age,b.sex b_sex,g.name g_name,g.age g_age,g.sex g_sex
    from # b
    left join # g
    on b.id+1=g.id
    where b.id%2=1--删除临时表
    drop table #比如有以下数据
    name sex age
    aa   1   22
    bb   0   23
    cc   1    55
    dd   0   40
    ee   1   32那么将产生如下的结果
    b_name b_sex b_age g_name g_sex g_age
    aa     1     22    bb      0    23
    cc      1    56    dd      0    40
    ee     1     32
      

  4.   

    仔细一看原来要分开 执行  我把三段  sql直接复制到 sql查询器中难怪没看到效果!
      

  5.   

    你的表中如果原来有标识列的话,可以用count计数法而不采用临时表,可以一条语句完成功能.
      

  6.   

    有的标识列是 sex 0表示男   1表示女这样的话怎么写?   我急用  急用  谢谢~