Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

diurutkan berdasarkan parameter

Anda memiliki 2 opsi, gunakan pernyataan CASE, atau gunakan sql dinamis

Ini akan menjadi contoh pernyataan 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

Dan ini akan menjadi contoh sql dinamis

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. Tidak dapat terhubung ke database SQLServer di aplikasi Java

  2. Mengalami masalah dengan penyimpanan UTF-8 di NVarChar di SQL Server 2008

  3. Periksa Apakah Tabel Memiliki Kunci Asing di SQL Server dengan OBJECTPROPERTY()

  4. Salin Data dari Salesforce ke SQL Server dengan Spectral Core

  5. Cara Memperbaiki "Skema partisi '...' tidak memiliki filegroup yang digunakan berikutnya" di SQL Server