【发布时间】:2018-12-11 20:02:55
【问题描述】:
我正在使用SELECT 和UNION 对表进行批量插入。我需要在调用INSERT 时保持SELECT 值的顺序不变,但似乎这些值是按升序插入的,而不是我指定的顺序。
例如下面的插入语句
declare @QuestionOptionMapping table
(
[ID] [int] IDENTITY(1,1)
, [QuestionOptionID] int
, [RateCode] varchar(50)
)
insert into @QuestionOptionMapping (
RateCode
)
select
'PD0116'
union
select
'PL0090'
union
select
'PL0091'
union
select
'DD0026'
union
select
'DD0025'
SELECT * FROM @QuestionOptionMapping
将数据呈现为
(5 row(s) affected)
ID QuestionOptionID RateCode
----------- ---------------- --------------------------------------------------
1 NULL DD0025
2 NULL DD0026
3 NULL PD0116
4 NULL PL0090
5 NULL PL0091
(5 row(s) affected)
插入数据的select如何返回和插入时一样的顺序?
【问题讨论】:
-
回答为什么它最终被排序:
UNION删除重复项,因此通常会沿途对数据进行排序。您可以使用UNION ALL来避免这种情况。
标签: sql-server tsql