注册 登录
编程论坛 SQL Server论坛

萌新求解:在SqlServer数据库中插入表数据时,排序问题

i微尘 发布于 2020-05-23 14:15, 1443 次点击
创建的表Student
create table Student(
    sid int identity(1000,1) primary key,    /* 主键,自增长从1000开始,每次递增1 */
    sname nvarchar(10) not null,
    ssex bit default 0,
    sage numeric(2) default 18
)

--插入学生表数据
insert into student(sname,ssex,sage)
  select '张三',0,19 union
  select '李四',1,20 union
  select '王五',0,22 union
  select '赵六',0,18 union
  select '魏七',1,19 union
  select '王八',0,17 union
  select '王大麻子',0,16

--/* 显示结果如下,并没有按照我插入的数据顺序进行排列;按理来说应该是1000,张三,0,19排第一位的呀 */
sid        sname      ssex    sage
1000    李四        1    20
1001    王八        0    17
1002    王大麻子    0    16
1003    王五        0    22
1004    魏七        1    19
1005    张三        0    19
1006    赵六        0    18
2 回复
#2
i微尘2020-05-26 10:04
已解决 使用union组合插入数据出来的集合,会默认按照第一列排序,也就是名字的全拼排序;要想按照插入数据的顺序排序,可以逐行执行单行插入;插入顺序没有意义,在读取的时候加order by才会真正的进行排序!!!
#3
sssooosss2020-05-28 08:38
自己研究清楚印象更深刻
1