Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

đặt hàng theo một tham số

Bạn có 2 tùy chọn, hoặc sử dụng câu lệnh CASE hoặc sử dụng sql động

Đây sẽ là một ví dụ về câu lệnh CASE

DECLARE @Table TABLE(
        Col1 VARCHAR(10),
        Col2 VARCHAR(10)
)

DECLARE @OrderBy VARCHAR(100)

SET @OrderBy = 'Col1'

SELECT  *
FROM    @Table
ORDER BY 
        CASE
            WHEN @OrderBy = 'Col1' THEN Col1
            WHEN @OrderBy = 'Col2' THEN Col2
            ELSE Col1
        END

Và đây sẽ là ví dụ về sql động

CREATE TABLE #Table (
        Col1 VARCHAR(10),
        Col2 VARCHAR(10)
)

DECLARE @OrderBy VARCHAR(100)

SET @OrderBy = 'Col1'

DECLARE @SqlString NVARCHAR(MAX)

SELECT @SqlString = 'SELECT * FROM #Table ORDER BY ' + @OrderBy

EXEC(@Sqlstring)

DROP TABLE #Table


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL để đếm các bản ghi mỗi tháng

  2. Sử dụng merge..output để ánh xạ giữa source.id và target.id

  3. Ràng buộc KIỂM TRA trong SQL Server

  4. Ví dụ về CTE và đệ quy của SQL Server

  5. Cách tạo kết nối ODBC mới với một máy chủ SQL từ xa