这是我的问题:
我有一个“机器”表,列的行看起来像这样,但更长:
Microsoft应用程序错误报告
Microsoft应用程序 错误报告
Microsoft Office Professional Plus 2010
Microsoft Office OneNote MUI(英语)2010
Microsoft Office InfoPath MUI(英语)2010
Office Access MUI(英语)2010
Microsoft Office Shared 设置元数据MUI(英语)2010
Microsoft Office Excel MUI (英文)2010
Microsoft Office共享64位设置元数据 MUI(英文)2010年
我有一个“例外”表,其中有一列的行:
Microsoft Office OneNote MUI(英文)2010
Microsoft Office InfoPath MUI(英文)2010
我想做的只是将第一个表格中的文字(而不是第二个表格)中的文字放在第三个表格中。
对不起,如果我不清楚,我的英语就做到了最好..提前致谢。
编辑:这是我的行的样子。 Click
答案 0 :(得分:2)
假设您想要在Machines中的行(没有Exceptions中的行),您可以像这样选择它们:
select *
from Machines
where columnName not in (select columnName from Exceptions)
然后您可以使用insert插入它们(假设Machines和newTable具有相同的列):
insert into newTableName
select *
from Machines
where columnName not in (select columnName from Exceptions)
如果它们有不同的列,您可以选择它们。
由于它们位于同一列和行中,因此您需要使用like
检查它们是否存在,并replace
删除所需的部分。
答案 1 :(得分: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
我将您的问题解释为机器有很多行,其中包含一行文字。您希望机器中的不同行不在例外中。
答案 2 :(得分: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中的相关字符串。
我希望它很清楚,可以帮助别人。