2012-04-02 18 views
0

同じテーブル内のある列から別の列にデータを挿入できません。個々の行を挿入するのに問題はありませんが、それは私が望むものではありません。私は "PercentFull"という名前のカラムを持っています。この値に0.01を掛けて10進数を取得します。これは "NewPercentFull"と呼ばれるカラムに挿入したいものです。私は以下を試しました:1つの列から別のSQL Serverにデータを挿入する方法

insert into Table1 (NewPercentFull) 
select PercentFull * .01 
from Table 1 

すでにPercentFull列にデータが入力されています。ただし、このクエリが実行された後、NewPercentFullを含むテーブルのすべての列に対してNULLが返されます。誰もがこれを達成する方法のアイデアを持っていますか? 1列のデータを挿入おかげ

答えて

5

は、他に、同じレコードから、UPDATE文で使用することを含むでしょう:あなたのクエリで

UPDATE Table1 
SET NewPercentFull=PercentFull * .01 

を、あなたは後Table1内のレコードの二重の量を見てきたはずですそのクエリの実行

NewPercentFullの場合でも値がNULLであることに言及しました。これが当てはまる場合、私のクエリはNULL値を返すかもしれないと思います。これはPercentFullNULLの場合に発生します。あなたの迅速な対応のための

UPDATE Table1 
SET NewPercentFull=PercentFull * .01 
WHERE PercentFull IS NOT NULL 
+0

感謝:

はこれを回避するには、唯一のPercentFullためNULL値を持たないレコードを更新します。はい、そうです、そのクエリを実行した後、私はエントリの量を2倍にしました。あなたが示唆したクエリは適切な軌道にあるようですが、実際の値の代わりに「0」が設定されているという問題があります。私はselect as文を使用するとき、 "percentfull * .01"関数が動作することを知っているので、この奇妙なことがわかります。 – Rick

+0

@Rick丸めの問題のように聞こえます。列にはどのようなデータ型がありますか? – Curt

+0

私はPercentFullとNewPercentFullの両方をintとして宣言しました。 NewPercentFullは私が作成した新しい列ですので、この列は空です(更新文と違いがあるかどうかはわかりません)。 – Rick

関連する問題