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

選択クエリに属性名を動的に書き込む方法

    テーブルは、最初の正規形ではないように見えます。

    Period0IdからPeriod2Idの3つの列の代わりに、値が(0,1,2)のPeriodIndexの列と、PeriodIdの1つの列を作成すると、WHERE PeriodIndex = @Checkになります。

    変数を使用した文字列補間を使用して列を選択することはできません。動的SQLを使用して、SQL文字列を動的に作成できます。または、オプションがすべて同じデータタイプである場合は、オプションをハードコーディングします。

    Select ID, 
           Name, 
           StatusId = CASE @Check WHEN 0 THEN Period0Id
                                  WHEN 1 THEN Period1Id
                                  WHEN 2 THEN Period2Id
                       END
    From mytable
    


    1. plsql関数で関数を呼び出す方法

    2. Openshiftでpostgresql.confのデフォルト値を変更する方法

    3. Oracle SQL Developer-エラー:FROMキーワードが予期された場所に見つかりません

    4. デフォルトのOracleのHRスキーマのSQLはどこで入手できますか?