2016-04-23 221 views
-2

我想根據現有列的數量創建新列。我在下面的代碼中遇到錯誤,我知道這是因爲< =,> = =類型操作數只能返回一條記錄。我相信我應該使用IN或ANY,所有可能的操作數,但似乎無法正確實施它。SQL基於另一列的小於操作數創建新列

ALTER TABLE SALES_TOTAL ADD REFUNDS INTEGER(20); 

UPDATE SALES_TOTAL SET REFUND = SELECT [SALE_TOTAL] from [SALES_TOTAL] WHERE[SALES_TOTAL] < 10 

任何人都可以提供一個如何做的例子嗎?

在此先感謝。

+0

什麼錯誤? 「單行子查詢返回多行」? –

+0

是的 - 「子查詢返回的值超過1,當子查詢跟隨=,!=,<, <= , >,> =或子查詢被用作表達式時,這是不允許的 」 – eggman

+0

@RuslanOsmanov回答了您的問題。 –

回答

1

這就是你可能想:

alter table SALES_TOTAL add REFUNDS int unsigned not null default 0; 
update SALES_TOTAL set REFUNDS = SALE_TOTAL where SALE_TOTAL < 10; 
+0

假設有15行sale_total小於10.哪個值將被選中? –

+0

@I_am_Batman,sql非常聰明,可以選擇相應的行。只是測試它。 https://gist.github.com/809cc8e6c2dffa9378d9566661facdf1 –

+0

點失敗。 –