sql >> Databáze >  >> RDS >> Sqlserver

Dynamický dotaz na SQL Server

Ano, pomocí příkazu CASE:

SELECT CASE @MyVariable
       WHEN 1 THEN [Col_1]
       WHEN 2 THEN [Col_2]
       ...
       WHEN 10 THEN [Col_10]
       END

Zda je to dobrý nápad, je úplně jiná otázka. Měli byste používat lepší názvy než Col_1, Col_2 atd.

Můžete také použít metodu substituce řetězců, jak navrhují jiní. Je to však poslední možnost, protože může otevřít váš kód útokům sql injection.



  1. SQL Server je paralelní s Oracle DBMS_METADATA.GET_DDL?

  2. Jak změnit primární klíč tak, aby nebyl klastrovaný?

  3. Rozdíl mezi spouštěči FOR a AFTER?

  4. Jaké jsou sqlite ekvivalenty INTERVAL a UTC_TIMESTAMP MySQL?