2013-05-06 38 views
6

Tôi có một câu lệnh chọn sql có chứa một số cột được tính từ một số cột hoặc bảng khác. Tôi đã đặt tên cho cột này bằng cách sử dụng Từ khóa.Sắp xếp bảng Sql bằng cách sử dụng cột bí danh

Bây giờ, tôi muốn sắp xếp bảng này theo cột được tính toán. Tôi không thể sử dụng tên đó để sắp xếp.

Có người xin vui lòng giúp đỡ để sắp xếp bảng sql sử dụng tính cột

+0

gói nó trong [] đã không làm việc theo trình tự do? – xQbert

+0

"Tôi không thể sử dụng tên đó để phân loại" thực sự có nghĩa là gì? Khi [tài liệu] (http://msdn.microsoft.com/en-us/library/ms188385.aspx) nói, "Cột sắp xếp có thể được chỉ định làm tên hoặc bí danh cột". Bạn có thể hiển thị mã TSQL của bạn và bất kỳ thông báo lỗi nào không? – Pondlife

Trả lời

5

một lựa chọn hơn, bạn có thể sử dụng số cột INDEX để bởi như hiển thị trong follwoing dụ

select ACol,AVal,CAST(ACol as varchar(3)) + aval as 'New' from ABC order by 3 

này sẽ sử dụng columnd 'mới' để sắp xếp

+2

Thực sự là một cách đơn giản để sắp xếp .. Nhưng cần phải quan tâm đến thứ tự cột .. – Kokila

15

Trong các phiên bản cũ của SQL Server, bạn có thể xác định bí danh trong một subquery:

select * 
from (
     select col1 + col2 as col3 
     from YourTable 
     ) SubQueryAlias 
order by 
     col3 

Trong SQL Server 2008+ bạn nên có thể order by một bí danh mà không có một subquery:

select col1 + col2 as col3 
from YourTable 
order by 
     col3 
+3

Nó hoạt động trong SQL Server 2005 và 2000 là tốt. Từ [tài liệu SQL Server 2000] (http://msdn.microsoft.com/en-us/library/aa259187 (v ​​= sql.80) .aspx) "Cột sắp xếp có thể được chỉ định làm tên hoặc bí danh cột" –

+0

đó là một câu trả lời rất hay. –

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