2012-04-02 63 views
0

我在將數據從一列插入到另一列時出現問題。插入單個行沒有問題,但這不是我想要的。我有一個名爲「PercentFull」的列,我將該值乘以.01得到十進制等效值,這就是我想要插入到名爲「NewPercentFull」的列中的值。我試過以下內容:如何從一列插入數據到另一臺SQL服務器

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

已經有填充PercentFull列的數據。但是,執行此查詢後,我的表中的每個列都會得到NULL,包括NewPercentFull。任何人都有如何實現這個想法?由於

回答

5

從插入一列數據,到另一個,從相同的記錄,將涉及使用UPDATE聲明:

UPDATE Table1 
SET NewPercentFull=PercentFull * .01 

有了您的查詢,你應該已經看到了記錄兩倍量Table1後執行該查詢。

您已經提到,值爲NULL,即使對於NewPercentFull。如果是這種情況,那麼我認爲我的查詢也可能返回NULL值。當PercentFull也是NULL時將發生這種情況。

爲了避免這種情況,只更新不具有NULL價值PercentFull記錄:

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

感謝您的快速反應。是的,你是對的,在我執行了這個查詢之後,我的確有兩倍的條目數量。您建議的查詢似乎是正確的,現在的問題是它們被填充「0」而不是實際值。我覺得這很奇怪,因爲我知道「percentfull * .01」函數在我使用select語句時起作用。 – Rick 2012-04-02 15:26:33

+0

@它聽起來像一個舍入問題。什麼數據類型是你的專欄? – Curt 2012-04-02 15:33:39

+0

我已經聲明PercentFull和NewPercentFull都是int。 NewPercentFull是我創建的新列,所以這個列是空的(我不知道這是否會影響更新陳述) – Rick 2012-04-02 15:36:40

相關問題