Rows in columns

浪尽此生 提交于 2019-12-04 07:19:53

问题


I have this table:

Id Kind
1  MODEL
1  MOTOR
2  MODEL
2  MOTOR
3  MOTOR
4  MODEL

And I want to insert into anothe table:

IdModel IdMotor
1       1
1       2
1       3
2       1
2       2
2       3
4       1
4       2
4       3

I know how to do it with cursors, but it's indeed very slow. I've tried with union but it looks like today is not my best day!

I also know this can be done in SQL 2005 with pivot, but I have to do it with SQL Server 2000.

Any Transact-SQL guru out there with a good and quick query?

Thanks in advance!


回答1:


Looks like this will work:

INSERT Table2
SELECT model.id, motor.id
FROM
    Table model,
    Table motor
WHERE
    model.Kind = 'MODEL'
    and motor.Kind = 'MOTOR'



回答2:


INSERT INTO AnotherTable
SELECT  [IdModel]
        , [IdMotor]
FROM    (        
          SELECT  [IdModel] = ID
          FROM    ATable
          WHERE   Kind = 'MODEL'
        ) md
        CROSS APPLY
        (
          SELECT  [IdMotor] = ID
          FROM    ATable
          WHERE   Kind = 'MOTOR'
        ) mt          


来源:https://stackoverflow.com/questions/6370629/rows-in-columns

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!