Sql server 2000 列中的行
我有这张桌子:Sql server 2000 列中的行,sql-server-2000,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在SQL2005中
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在SQL2005中实现,但我必须用SQLServer2000来实现
有没有哪位Transact-SQL专家能够提供良好且快速的查询
提前谢谢 看起来这会起作用:
INSERT Table2
SELECT model.id, motor.id
FROM
Table model,
Table motor
WHERE
model.Kind = 'MODEL'
and motor.Kind = 'MOTOR'
我要创建的表不存在,因此最初只有一个表。是的,我想创建IdModel和IdMotor的所有可能组合。谢谢!正如我之前所说:我今天对部分心理技能有点失望,8-[Wow.+1。这个答案假设了与问题不同的模型,但显然是正确的。
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