2012-07-04 20 views
10

thể trùng lặp:
Case Order by using NullSQL Server 2005: thứ tự với các giá trị NULL ở cuối

tôi đang tìm cách để có được một danh sách các hồ sơ theo yêu cầu của một trường "ordernum". Trường ordernum là một trường int. Trường này bắt đầu bằng NULL cho đến khi được thiết lập bởi người dùng. Tôi muốn các mục NULL xuất hiện ở cuối danh sách.

Tôi đang xây dựng một truy vấn như sau:

select *, case when (ordernum is null) then [largestInt] else ordernum end as newordernum 
from tableName 
order by newordernum 

Tôi biết tôi có thể nhập giá trị cho int lớn nhất có thể cho [largestInt], nhưng tôi muốn thay thế [largestInt] với một biến. Điều này có thể không?

Trả lời

25

Tôi đã tìm thấy cách để đặt giá trị NULL ở dưới cùng.

http://sqlblog.com/blogs/denis_gobo/archive/2007/10/19/3048.aspx

Nó đáp ứng nhu cầu của tôi khá độc đáo. Truy vấn của tôi bây giờ là:

select * 
from tableName 
order by case when ordernum is null then 1 else 0 end, ordernum 
+3

Đây là cách phù hợp để thực hiện. Nhưng tôi thấy thật kỳ lạ khi câu trả lời của bạn đã được đăng gần như cùng thời điểm với câu hỏi của bạn – Lamak

+0

Tôi đã được Googling cùng một lúc. Thật khó để tìm kiếm những thứ như "max int" mà không nhận được hàm tổng hợp. Có thể đăng câu hỏi với câu trả lời cùng một lúc, đó là những gì tôi đã làm. :) – dangowans

+3

Tôi biết nó có thể, không có vấn đề với điều đó. Nhưng câu hỏi này thực sự là một bản sao đã được trả lời nhiều lần ở đây trên SO, do đó, một tìm kiếm nhanh ở đây sẽ trả về cùng một điều này – Lamak

Các vấn đề liên quan