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

SQL:Názvy dynamických proměnných

No, není to hezké, ale můžete to udělat:

if @loopcntr = 1
    set var01 = 'somevalue'
else if @loopcntr = 2
    set var02 = 'whatever'
else if . . .

To by mělo být dostatečně nepříjemné, abyste mohli přemýšlet o alternativách. Oh, tady je dobrý. Definujte proměnnou tabulky a přidejte řádky pro každou hodnotu:

declare @vars table (
    id int identity(1, 1),
    loopcntr int,
    value varchar(255)
);

. . .
-- inside the loop
    insert into @vars(loopcntr, value)
        select @loopcntr, 'whatever';

Když chcete získat proměnnou, můžete:

declare @var varchar(255);
select @var = value from @vars where loopcntr = <the one I want>;


  1. Načte hodnotu prvku xml v Oracle PL SQL

  2. Problém s aktualizací entity pomocí jpa/hibernate

  3. Chyba nejednoznačného názvu sloupce

  4. Hodnota pole spojit na řetězec v SQL Server