Trong SQL có cách nào để sort database theo các field ko?
Trong SQL có cách nào để sort database theo các field ko?
Bạn nói sort dữ liệu SQL là sao? Cái này bạn phải làm trong lúc truy vấn dữ liệu chứ. Có nghĩa là trong câu lệnh SQL của bạn, VD như
SELECT * FROM Employees ORDER BY employee_id DESC
Ko, ý tui nói là short các record của database kìa.
Tui ko hỏi cách sort dữ liệu khi kết xuất, mà hỏi cách sort thứ tự các record trong một table (ko có kết xuất). Mà hình như SQL ko có thì phải.
Một điểm cơ bản đối với CSDL mà bạn phải nhớ là bạn không cần (và cũng không thể) biết dữ liệu được lưu trữ thế nào. Bạn chỉ cần "ra lệnh" nó lấy dữ liệu ra như thế nào, DBMS sẽ lấy ra như thế đó.
Các record trong một table nói chung được lưu trữ không theo bất kì thứ tự nào hết. Địa chỉ thực sự của nó trong thiết bị lưu trữ được DBMS quản lý bên trong và những giá trị này vô nghĩa đối với những người phát triển ứng dụng ;-)
Đã đành là vậy. Nhưng nếu tôi muốn lưu một bảng dữ liệu có 1 quan hệ thứ tự giữa các record là X, và thứ tự đó có thể được thể hiện thông qua ID (primary key). Nếu tôi muốn thêm vào table 1 record và muốn đảm bảo rằng record đó sẽ được lưu theo đúng quan hệ thứ tự X thì phải làm thế nào?
Vậy thì bạn update ID lạiID cũng chỉ là 1 field trong record mà thôi.
Nhưng ID là primary và có thuộv tính auto-increment thì sao?
Dễ thôi, giả sử như bạn đã có 10 records, và bạn muốn chèn 1 record A vào vị trí số 6. Bạn copy các giá trị của records số 6 vào biến, rồi UPDATE các giá trị của A vào cái record có ID số 6sau đó thì giá trị của số 6 bạn muốn cho nó đi đâu thì đi, sang số 7 chẳng hạn... và cứ thế...
Nói đi nói lại, vấn đề mà bạn cần được giải quyết đều do phần lập trình chứ không do Database.
Tốt nhất, nói rõ trường hợp cụ thể của bạn, sẽ có cách giải quyết thôi mà.
nếu ID có thuộc tính là Auto-increment bạn dùng câu lênh:
SET IDENTITY_INSERT tblname ON ;
--cau lenh insert cua ban ;
SET IDENTITY_INSERT tblname OFF
Bookmarks