0

这是我的问题:
我有一个“机器”表,列的行看起来像这样,但更长:

Microsoft 应用程序错误报告

Microsoft 应用程序错误报告

Microsoft Office Professional Plus 2010

Microsoft Office OneNote MUI(英语)2010
Microsoft Office InfoPath MUI(英语)2010

Microsoft Office Access MUI(英语)2010

Microsoft Office Shared Setup Metadata MUI(英语)2010

Microsoft Office Excel MUI(英语)2010

Microsoft Office Shared 64-bit Setup Metadata MUI(英语)2010

我有一个“例外”表,有一列像这样的行:

Microsoft Office OneNote MUI(英语)2010

Microsoft Office InfoPath MUI(英语)2010

我想做的是只取第一个表中存在的文本(而不是第二个表中的文本)并将其放入第三个表中。

对不起,如果我不清楚,我的英语已经尽力了。提前谢谢。

编辑:这是我的行的样子。点击

4

3 回答 3

2

假设您想要机器中的行(没有例外中的行),您可以像这样选择它们:

select *
from Machines
where columnName not in (select columnName from Exceptions)

然后,您可以像这样使用 insert into 插入它们(假设 Machines 和 newTable 具有相同的列):

insert into newTableName
select *
from Machines
where columnName not in (select columnName from Exceptions)

如果它们有不同的列,您可以选择它们..


由于它们都在同一列和同一行中,因此您需要使用like来检查它们是否存在,如果存在则replace删除所需的部分。

于 2012-06-05T13:27:23.810 回答
1

我想你想要的是:

select m.line
from (select distinct line
      from Machines m
     ) left outer join
     Exceptions e
     on m.line = e.line
where e.line is NULL

我将您的问题解释为 Machines 有很多行,其中包含一行文本。您希望机器中的不同行不在异常中。

于 2012-06-05T13:30:18.207 回答
0

我知道我的问题很老,但是由于我重做了整个程序,我找到了另一个答案,所以如果它可以帮助某人:

for (i = 0; i < SplitMachine.Length; i++)
            {
                for (j = 0; j < SplitExceptions.Length; j++)
                {
                    if (string.Compare(SplitMachine[i],SplitExceptions[j]) == 0)
                    {
                        ListMachines.RemoveAt(i);
                    }
                }
            }

SplitMachine 是我的软件的字符串数组,StringExceptions 是我不想显示的软件的字符串数组,所以如果我的 SplitMachine 中的字符串与 SplitExceptions 中的字符串匹配,我会删除 SplitMachine 中的相关字符串。

我希望这很清楚并且可以帮助某人。

于 2012-06-12T08:00:29.700 回答