sql >> Databasteknik >  >> RDS >> Sqlserver

Dynamisk fråga i SQL Server

Ja, med en CASE-sats:

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

Om detta är en bra idé är en helt annan fråga. Du bör använda bättre namn än Col_1, Col_2, etc.

Du kan också använda en strängersättningsmetod, som andra föreslagit. Det är dock en sista utväg eftersom det kan öppna upp din kod för sql-injektionsattacker.



  1. linq till entitet:linq query prestandaoptimering

  2. Hur genererar man sekventiellt radnummer i tsql?

  3. MySQL Infoga:Testa först?

  4. Hur INTERSECT fungerar i PostgreSQL