Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как динамично да напишете име на атрибут в заявката за избор

Таблицата ви изглежда така, сякаш не е в първата нормална форма.

Вместо три колони за Period0Id до Period2Id, можете да имате колона за PeriodIndex със стойности (0,1,2) и една колона за PeriodId и тогава ще бъде просто 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да преминавам само през файлове, които не съществуват в дестинацията, използвайки SSIS пакет?

  2. Предайте речник<string,int> към T-SQL за съхранявана процедура

  3. SQL грешка:Неправилен синтаксис близо до ключовата дума „Потребител“

  4. Извличане на URL адреси от уебсайт?

  5. Как да получите редове със сума, равна на дадена стойност