2017-11-02 11 views
0

私は以下のテーブルを持っていますが、データに2つの値(0または1)しか与えない追加のカラム/フラグを追加しようとしました。絵は、あなただけの半分の0と半分の1秒をしたい場合は、あなたが行うことができます事前に予想される結果.Thanks利用可能なデータでフラグを生成する

--drop table #test 

create table #TEST (SERIAL VARCHAR(10), DESCR VARCHAR(10) ) 
    INSERT INTO #TEST 
     VALUES ('12345' ,'TEST') , ('16782' ,'TEST1') , 
      ('46729' ,'TEST3'), ('82791' ,'TEST3'), 
      ('72865' ,'TEST5') 

期待される結果

enter image description here

+1

を使用することができますか? – SQLChao

+0

このフラグ列の正確な位置はどのくらいですか? – gotqn

答えて

0

を示しています

select t.*, 
     (row_number() over (order by (select null)) % 2 as flag 
from #test; 

この意志任意の半分の行に1の値を与え、残りの半分に0の値を与える。

1

あなたが使用することができ、テーブルを作成しようとしている場合:

CREATE TABLE #TEST (SERIAL VARCHAR(10), DESCR VARCHAR(10), FLAG BIT ) 
INSERT INTO #TEST VALUES ('12345' ,'TEST', 0) , 
          ('16782' ,'TEST1', 1) , 
          ('46729' ,'TEST3', 0), 
          ('82791' ,'TEST3', 1), 
          ('72865' ,'TEST5' 0) 

それが作成された後、あなたがテーブルの更新をアップしたい場合は、あなたが旗を決めるましたか

ALTER TABLE #TEST ADD Flag BIT 
UPDATE TABLE SET Flag = 0 WHERE SERIAL IN (12345, 46729, 72865) 
UPDATE TABLE SET Flag = 1 WHERE SERIAL IN (16782, 82791) 
+0

これはサンプルデータであり、リアルタイムでは他のプロセスを使用してデータが作成されます。私はテーブルからデータを選択し、レポートの目的のためのフラグを作成する必要があります。 – Krisha

+0

@Krishaどのようにフラグが計算されますか – Dale

関連する問題