- COLLATE句を使用する方法:
ソート順を変数に保存するために、COLLATE句を使用できます。COLLATE句は、クエリ内の特定のカラムや文字列リテラルにソート順を適用するために使用されます。
例えば、次のコードでは、@sortOrderという変数にソート順を指定しています。
DECLARE @sortOrder NVARCHAR(100)
SET @sortOrder = 'Japanese_CI_AS' -- ソート順を指定
SELECT column1, column2
FROM yourTable
ORDER BY column1 COLLATE @sortOrder
- CASE文を使用する方法:
CASE文を使用して、ソート順を変数に保存することもできます。CASE文を使用すると、動的にソート順を切り替えることができます。
以下は、CASE文を使用してソート順を指定する例です。
DECLARE @sortOrder NVARCHAR(100)
SET @sortOrder = 'ASC' -- ソート順を指定
SELECT column1, column2
FROM yourTable
ORDER BY
CASE WHEN @sortOrder = 'ASC' THEN column1 END ASC,
CASE WHEN @sortOrder = 'DESC' THEN column1 END DESC
- 動的SQLを使用する方法:
動的SQLを使用すれば、実行時にソート順を変数として指定することができます。ただし、動的SQLは注意が必要であり、セキュリティ上のリスクがあるため、慎重に使用する必要があります。
以下は、動的SQLを使用してソート順を指定する例です。
DECLARE @sortOrder NVARCHAR(10)
SET @sortOrder = 'ASC' -- ソート順を指定
DECLARE @sql NVARCHAR(MAX)
SET @sql = N'
SELECT column1, column2
FROM yourTable
ORDER BY column1 ' + @sortOrder
EXEC sp_executesql @sql
これらの方法を使用することで、SQL Serverでソート順を変数に保存することができます。お使いの環境や要件に合わせて最適な方法を選択してください。