2012-04-05 85 views
2

我能確定我想用select語句中的數據刪除行會議標準:SQL:如何從另一個表

SELECT InventoryUnitMeasure.ItemCode, 
     InventoryUnitMeasure.UPCCode, 
     InventoryItem.ItemName 
FROM InventoryUnitMeasure 
    INNER JOIN InventoryItem 
     ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode 
where ItemName like 'SNT%' 

然後我試圖改變刪除列UPCODE表InventoryUnitMeasure像這樣但得到一個錯誤:

DELETE upccode from 
FROM dbo.InventoryUnitMeasure 
    INNER JOIN InventoryItem 
    ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode 
where ItemName like 'SNT%' 

我知道我在做一個簡單的錯誤,但我就是想不通,我已經試圖尋找在多個站點和不同的搜索,但我只能看到如何刪除整個表加入時,而不僅僅是一列。

任何幫助將不勝感激。

我正在使用SQL Server作爲DBMS。

+0

而錯誤是...? – 2012-04-05 22:14:31

+1

您正在使用哪些DBMS? PostgreSQL的?甲骨文? DB2? SQL Server? – 2012-04-05 22:14:53

+2

你想刪除*行*或*列*嗎?這些是兩個完全不同的東西...... – 2012-04-05 22:15:47

回答

0
DELETE InventoryUnitMeasure.upccode 
FROM dbo.InventoryUnitMeasure 
    INNER JOIN InventoryItem 
    ON InventoryUnitMeasure.ItemCode = InventoryItem.ItemCode 
where ItemName like 'SNT%' 

這應該工作

+0

我不知道任何DBMS可以讓你在'DELETE FROM'語句中指定一個列。他要麼刪除整行(因爲他將其與另一行關聯),將該特定列更新爲表示刪除的某個值,或者想要更改表的結構以刪除列......但這不會適用於任何這些情況。 – 2012-04-05 22:42:20

3

是不是DELETE語句用於刪除整行?正如我underestand你的問題,你應該使用UPDATE語句來代替..

UPDATE table dbo.InventoryUnitMeasure SET upcode = null ... 

語法上有些淡淡的可here(快速谷歌搜索)

+0

+1用於將鏈接發佈到多個DBMS的多個解決方案,因爲它沒有被OP指定。 – 2012-04-05 22:43:56

+0

更新表正是我想要做的。謝謝皮達,通過我的問題來看我真正想知道的東西! 對於將來出現類似問題的人,這是針對SQL Server的。 – user1316376 2012-04-06 12:58:39

+0

歡迎你:)現在你可以接受這個答案作爲解決方案我想:) – 2012-04-06 18:39:18

0

你有沒有注意到,有兩名來自陸續陳述一個?只需將刪除語句的開頭更改爲DELETE FROM table_name ....

如果您希望更新特定列下的單元格值,則Píďa是正確的。如果你想從表中刪除整列,那麼你應該使用 ALTER TABLE表名

DROP COLUMN列名

這意味着你正在改變該表的結構。