sql >> Database >  >> RDS >> Sqlserver

volgorde door een parameter

Je hebt 2 opties:gebruik een CASE-statement of gebruik dynamische sql

Dit zou een voorbeeld zijn van de CASE-instructie

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

En dit zou een voorbeeld zijn van dynamische sql

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. Hoe te controleren of gebruikersnaam al bestaat met PHP/MYSQL

  2. Datumlijst in een bereik krijgen in PostgreSQL

  3. APACHE crasht:bovenliggend:onderliggende proces afgesloten met status 3221225477 -- Opnieuw opstarten

  4. Hoe lid te worden van de eerste rij