這個問題在這里已經有了答案:
我們的 ASP.NET MVC 網站頁面中的下拉串列也是如此:
![為什么表單下拉項按字母順序排序?[復制]](https://img.uj5u.com/2022/06/24/3afa7bce7ebe4533bf8f45adb0fedaba.png)
我真的需要添加一個帶有整數值的表列,以使專案按我手動填充的自然順序排序嗎?
uj5u.com熱心網友回復:
根據定義,關系資料庫表是一組無序的行。盡管 SQL Server 可能會回傳有序資料(取決于執行計劃和其他因素),ORDER BY但查詢中需要一個子句來保證結果集按需要排序。
這意味著您需要表中的列來指定順序。您可以添加一個增量列(IDENTITY、日期時間等)并在 ORDER BY 子句中指定它。
與其依賴插入順序,不如考慮添加 MajorDisplaySequence 列或類似列。這樣,您可以稍后添加更多行(MajorDisplaySequence 值 1),但仍保留“OTHER”(MajorDisplaySequence 值 2)作為最后回傳的值。
CREATE TABLE dbo.industry(
industryId char(3) NOT NULL
CONSTRAINT pk_industry PRIMARY KEY
,industryName varchar(50) NOT NULL
,MajorDisplaySequence int NOT NULL
);
SELECT industryId, industryName
FROM dbo.industry
ORDER BY MajorDisplaySequence, industryId;
如果源資料包含所需的屬性,則在客戶端代碼中排序也是一種選擇。
uj5u.com熱心網友回復:
我猜你的資料庫表上有一個聚集索引,這導致它以排序順序存盤資料。
如果您需要以特定方式對事物進行排序,您可能需要有一個單獨的列來存盤它 - 例如一個自動遞增的列,或一個日期時間 - 然后order by xxx在獲取資料的查詢中使用一個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/494998.html
標籤:sql 网 sql服务器 asp.net-mvc 视觉工作室
