以非字母顺序存储数据

Roh*_*han 0 sql sql-server sql-server-2008

我将值存储到带有SQL INSERT查询的表中

查询:

INSERT INTO tbl_Deta ([ID NO], [OR NO], [ITEM DESCRIPTION], QUANTITY, UNIT)
VALUES (6,0,'ring gauge',44,nos)

INSERT INTO tbl_Deta ([ID NO], [OR NO], [ITEM DESCRIPTION], QUANTITY, UNIT)
VALUES (6,0,'asd',14,ads)

INSERT INTO tbl_Deta ([ID NO], [OR NO], [ITEM DESCRIPTION], QUANTITY, UNIT)
VALUES (6,0,'amd',33,asd)
Run Code Online (Sandbox Code Playgroud)

结果:

[ID NO]  [OR NO]  [ITEM DESCRIPTION]  QUANTITY  UNIT
  6        0             asd             14     ads 
  6        0            ring gauge       44     Nos 
  6        0             amd             33     asd 
Run Code Online (Sandbox Code Playgroud)

我希望结果与插入数据的顺序相同,而不是按字母顺序排列.

Yar*_*lav 9

表中没有固有的顺序.

插入行时没有预先建立的顺序.如果你做了

SELECT [ID NO], [OR NO], [ITEM DESCRIPTION], QUANTITY, UNIT FROM tbl_Deta
Run Code Online (Sandbox Code Playgroud)

没有ORDER BY那么没有特定的顺序将被使用.如果需要某些特定的排序结果,则必须使用ORDER BY子句.您可以使用主键并根据其值进行排序.

有几个问题/答案可以帮助您更好地理解这一点:

我只是通过我的RSS源阅读,并发现Michael J. Swart撰写了一篇精彩的博客文章.在一个条目中关于这个主题的所有最佳答案,太棒了!


Dav*_*ins 6

按插入顺序检索行不是标准的保证SQL功能.我建议添加另一个您可以订购的列,例如标识/自动编号整数字段,或者可能是插入的日期.

  • @Rohan表中没有固有的顺序,如果你不包含`ORDER BY`,那么即使使用自动增量字段,也不能保证你会在插入行时获得相同的顺序.您必须使用`ORDER BY`来获得所需的订单 (2认同)