2012-06-05 1 views
0

Вот моя проблема:
У меня есть «машина» таблица с строкой столбца, глядя, как это, но дольше:Вычтите/Сравнение двух строк таблицы в базе данных SQL

Ошибки

Microsoft Application Reporting

Microsoft Application Error Reporting

Microsoft Office Professional Plus 2010

Microsoft Office OneNote MUI (на английском языке) 2010
Microsoft Office InfoPath MUI (на английском языке) 2010

Microsoft Office Access MUI (на английском языке) 2010

Microsoft Office Shared Настройка метаданных MUI (на английском языке) 2010

Microsoft Office Excel MUI (на английском языке) 2010

Microsoft Office Shared 64-разрядная программа установки метаданных MUI (на английском языке) 2010

И у меня есть "исключения" таблицы, с строки столбца, как это:

Microsoft Office OneNote MUI (на английском языке) 2010

Microsoft Office InfoPath MUI (на английском языке) 2010

Что я хотел бы сделать, это принимать только текст, присутствующий в первой таблице (а не в второй) и положить его в третью таблицу.

Извините, если я не понимаю, я сделал все возможное с моим английским языком .. Спасибо заранее.

Редактировать: Вот как выглядит моя строка. Click

+0

У вас есть одно большое текстовое поле или они хранятся в виде отдельных строк в разных строках? –

+0

У меня есть большое текстовое поле (_varchar (MAX) _), все мои программные средства находятся в одной строке. –

+0

Являются ли исключения в одной строке? Или они на отдельных линиях? –

ответ

2

Предполагая, что вы хотите, чтобы строки, которые в машинах (без тех, которые находятся в исключении), вы можете выбрать их так:

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

Вы можете затем вставить их с помощью вставки в подобном (при условии, Машины и Новая_таблица с одинаковыми столбцами):

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

Если они имеют разные столбцы, вы можете выбрать их ..


Поскольку все они находятся в одном столбце и строке, вам необходимо использовать like, чтобы проверить, присутствуют ли они, и replace, чтобы удалить нужную деталь, если это так.

+0

Проблема в том, что все мои программные средства находятся всего в одной строке, например, в ссылке, которую я предоставил в своем первом сообщении 'edit. Будет ли это работать? :/ –

+0

@PierrePellegrinoMilza это не сработает. Но почему у вас все в одной строке? –

+0

Это связано с тем, что я сделал программу aC#, получая информацию о разных удаленных компьютерах (ОС, ЦП, Бла-бла, установленных программных средствах) и помещал все в таблицу, поэтому ОС находится в столбце, CPU в другом и установленном Программное обеспечение также находится в одном столбце:/ –

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 

Я интерпретировал свой вопрос, как машина имеет много строк с строкой текста в них. Вам нужны четкие строки в машинах, которые не входят в «Исключения».

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.

Надеюсь, это было ясно и может помочь кому-то.

Смежные вопросы