【问题标题】:How to remove unwanted rows and create new column in SQL?如何删除不需要的行并在 SQL 中创建新列?
【发布时间】:2011-11-06 16:53:18
【问题描述】:

我有两张桌子。

我的第一个表称为 WORLD,该表有一个名为 PEOPLE 的列。在 PEOPLE 表中,我有女性和男性的名字。

我的第二个表称为 MEN,此表有一个名为 NAMES 的列。它由男人的名字组成。

我想要做的是通过比较这两个表找到女性的名字并将它们添加到 WORLD 表中名为“WOMEN”的列中。

WORLD.PEOPLE           MEN.NAMES

John                John
Joe                 Alan
Jessica             Michael
Martin              Martin
Alan                Adam
Eva                 Joe
Mary                

我想要的是:

WORLD.PEOPLE           WORLD.WOMEN

John                Jessica
Joe                 Eva
Jessica             Mary
Martin              
Alan                
Eva                 
Mary                 

我尝试使用以下语句:

SELECT People FROM WORLD WHERE(人不在(SELECT Names FROM MEN)))

但是这只会给出结果,它不会更新 WORLD 表。

我该怎么办?

【问题讨论】:

    标签: sql sql-server sql-update


    【解决方案1】:

    您应该尝试创建一个新表并在其中添加值,然后删除 WORLD 表。 我猜你只想在一个数据库上工作,但我想不出其他更简单的方法。使用插入,您将获得空值,因此不实用。你可以试试我说的。

    【讨论】:

      【解决方案2】:

      您必须在表 WORLD 中有一些关键字段用于识别记录。 或者使用另一个表来存储女性姓名。

      【讨论】:

        【解决方案3】:
        INSERT INTO world(women) SELECT People FROM WORLD WHERE (People NOT IN(SELECT Names FROM MEN)))
        

        或类似的东西? 另请参阅the documentation。 我不确定上述语法是否正确,因为您通过从同一个表中选择数据来将数据插入到表中。也许你需要使用“AS”。

        【讨论】:

        • 如果您看到我正在链接的文档,则 SET 不是 INSERT...SELECT 语法的一部分。你试过代码了吗?
        猜你喜欢
        • 1970-01-01
        • 2015-04-17
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多