当然,对于大多数小型事务来说,这并不是一个很大的因素,但是对于更大的数据集,假设有有用的索引,使用 JOIN 而不是使用 CASE 进行 INSERT 是否更快?
使用 CASE 的示例(在 T-SQL 中):
INSERT into Foo
(CarID, CarMake)
(SELECT CarID,
CASE WHEN CarModel = 'Odyssey' THEN 'Honda'
WHEN CarModel = 'Sienna' THEN 'Toyota' END
as CarMake
FROM FooCar)
使用 JOIN 的示例:
INSERT into Foo
(CarID, CarMakeID)
(SELECT A.CarID, B.CarMake
FROM FooCar as A
JOIN FooMake as B on (A.CarModel = B.CarModel)
)
这两个陈述中的哪一个会达到更快的目标?请查看示例数据样本,它不能很好地代表问题的大小。我找不到像这样的另一个问题,但似乎应该已经提出并回答了一些问题。