2017-10-24 16 views
0

私は以下のレコードを使用してSQL Serverの一時テーブル#tempを持っている:SQL Serverを使用してテーブルのレコードを切り替える方法は?

一度に一つだけが真作り、ひとつのクエリで偽として他にする方法

enter image description here

?それは一度に一つだけの真作りとなりますように

+0

この質問は完全ではありません。 https://stackoverflow.com/help/mcve –

+2

を参照してください。http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-お問い合わせの際は285557と回答 –

答えて

0

、このコードを試してみて、それを複数回実行して、我々は、クエリを実行した場合の結果は、TRUとして1つの値を与えることによって、ランダムに生成

DECLARE @COUNT INT 
SELECT @COUNT=COUNT(1) FROM #tt 

    SELECT id,custId,IsActive FROM 
    (
    SELECT id,custId, 0 As IsActive FROM #tt where id <=(@COUNT-1) 
    UNION 
    SELECT id,custId, 1 As IsActive FROM #tt where id [email protected] 
    )DT 
    ORDER BY NEWID() 

偽として他そして他の人は、それは一時的なテーブルですので、あなたはそれを更新することができ、非アクティブに現在のアクティブを切り替えながら積極的に希望のIDを切り替える0

id custId IsActive 
    ---------------------------- 
    1  2  0 
    2  2  0 
    4  2  1 
    3  2  0 
0

偽すなわちです。

例:

--drop table #temp; 
create table #temp (id int, custId int, IsActive int); 
insert into #temp (id,custId,IsActive) values (1,2,0),(2,2,0),(3,2,1),(4,2,0); 

select * from #temp; 

declare @id int; 
set @id = 4; 

update #temp set IsActive = iif([email protected],1,0) where ([email protected] or IsActive=1); 

select * from #temp; 
関連する問題