列中的行

时间:2011-06-16 10:50:24

标签: sql-server-2000

我有这张桌子:

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

我想插入其他表:

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

我知道如何使用游标,但它确实非常慢。我尝试过工会,但看起来今天不是我最好的一天!

我也知道这可以在带有pivot的SQL 2005中完成,但我必须使用SQL Server 2000来完成。

任何Transact-SQL大师都有一个很好的快速查询?

提前致谢!

2 个答案:

答案 0 :(得分:3)

看起来这样可行:

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

答案 1 :(得分:0)

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