sql >> データベース >  >> RDS >> Sqlserver

パラメータによる順序

    CASEステートメントを使用するか、動的SQLを使用するかの2つのオプションがあります

    これは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
    

    そして、これは動的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. over句に正しい構文を使用するMySql

    2. MySQLで過去24時間のレコードを取得する方法

    3. PDOを介してAWSRDSに接続できません

    4. 2番目に高い給与