我读过很多SQL代码,似乎开发人员假定默认排序顺序始终存在.例如,在构建HTML选择列表时,他们只会SELECT id, name FROM table发布一个ORDER BY子句.
根据我自己的经验,似乎dbms ORDER BY总是使用FIFO命令数据,如果没有给出子句而没有索引.但是,订单无法保证.但是,如果表没有变化,我从未见过dbms重新排序数据.
如果表没有变化,您是否曾经历过以非确定性顺序选择数据的dbms?
始终放置ORDER BY子句是最佳做法吗?
假设向MySQL数据库发出以下查询:
SELECT * FROM table_name;
Run Code Online (Sandbox Code Playgroud)
请注意,没有 ORDER BY给出任何条款.
我的问题是:
MySQL是否给出了结果集行的顺序保证?
更具体地说,我可以假设行将按插入顺序返回吗?这与行插入表中的顺序相同.
可能重复:
为什么SQL查询的结果不会按照我期望的顺序返回?
从阅读7.5排序行和我在PostgreSQL中看到的问题,我的印象如下,但该部分并不完全明确,所以如果有人可以验证我将不胜感激:
SELECT * FROM items;
Run Code Online (Sandbox Code Playgroud)
没有保证的订单.
SELECT * FROM items ORDER BY published_date ASC;
Run Code Online (Sandbox Code Playgroud)
保证两个项目具有不同的日期来,在给定的顺序,但并不能保证两个项目具有相同的日期总是以相同的顺序.
SELECT * FROM items ORDER BY published_date ASC, id ASC;
Run Code Online (Sandbox Code Playgroud)
始终以相同的顺序返回项目,因为它是完全确定的.
我有这个权利吗?
我不太清楚对一个属性(例如published_date)的排序是否保证具有相同值的记录的顺序,如第二个示例中所示.
嗨伙计们我在sql中有以下查询
SELECT
a1
FROM
dbo.myProductNames
WHERE
keycode = 40 OR keycode = 28 OR keycode = 32 OR keycode = 50
Run Code Online (Sandbox Code Playgroud)
a1 =我需要表格中的信息的名称,以便按照我要求的顺序输出其查询的名称,所以我需要40先成为28然后再打开.
原因是我的代码读取结果并存储在一个数组中,然后用于在表单上显示.
SQL查询来自的表具有以num顺序存储的信息,因此将首先读取28等.
正如我所说,我需要按照我在where子句中输入的顺序获取信息.
我正在考虑与嵌套的Select语句有关,尽管我从未尝试嵌套选择.
或者,有一个简单的方法吗?
任何帮助都会很棒!
提前谢谢了!
!!!!! UPDATE !!!!!
好的,这是解决方案,谢谢你们!
SqlCommand pgNameFill = new SqlCommand("SELECT a1, CASE keycode WHEN @pg1 THEN 1 WHEN @pg2 THEN 2 WHEN @pg3 THEN 3 WHEN @pg4 THEN 4 END AS SortOrder FROM dbo.myProductNames WHERE keycode IN (@pg1, @pg2, @pg3, @pg4) ORDER BY SortOrder ASC", conny1);
pgNameFill.Parameters.AddWithValue("@pg1", pg1);
pgNameFill.Parameters.AddWithValue("@pg2", pg2);
pgNameFill.Parameters.AddWithValue("@pg3", …Run Code Online (Sandbox Code Playgroud) 可能重复:
为什么SQL查询的结果不会按照我期望的顺序返回?
我有这样的表..我的表名是模式.
S.No type Id_Section
1 A IPS
2 A IPS
3 A IPS
4 A IPS
1 B IPS
2 B IPS
3 B IPS
1 C IPS
2 C IPS
5 A IPS
4 B IPS
Run Code Online (Sandbox Code Playgroud)
在这个表中,最后一行有无序.所以我需要在serialno和type ='A'中订购表..订购后,例如我应该显示如下
S.No type Id_Section
1 A IPS
2 A IPS
3 A IPS
4 A IPS
5 A IPS
1 B IPS
2 B IPS
3 B IPS
4 B IPS
1 C IPS
2 C IPS
Run Code Online (Sandbox Code Playgroud)
如何为此编写SQL查询?请有人帮助我