2013-03-02 3 views
1

Я пытаюсь создать поиск на основе того, где элементы собираются вместе в одной таблице.TSQL Выберите, где один столбец равен другому столбцу

Так что если я ввести значение, например a123 для столбца BoxNo тогда все значения в столбце Goeswith, которые также a123 выбраны. Этот ниже код - моя попытка, но не работает.

SELECT * 
FROM Equipment 
WHERE (BoxNo LIKE '%') = GoesWith 

благодаря

+0

'SELECT * From Equipment WHERE BoxNo = GoesWith'. – danihp

+1

Ваш вопрос путается, можете ли вы предоставить образцы записей с желаемым результатом? –

ответ

1

Может быть, вы имеете в виду,

SELECT * 
FROM tableName 
WHERE 'a123' IN (BoxNo, GoesWith) 

или, может быть, это,

SELECT * 
FROM tableName 
WHERE BoxNo LIKE '%a123%' AND 
     BoxNo = GoesWith 
1

Если вы хотите найти все элементы, такие как a123 в BoxNo колонке:

SELECT * From Equipment WHERE BoxNo LIKE '%a123%' 

Из если вы хотите искать a123 в обеих колонках:

DECLARE @Search Varchar(50) = 'a123' 
SELECT * From Equipment WHERE BoxNo = @Search AND GoesWith = @Search 
2

Если вы хотите, чтобы все строки, в которых BoxNo и GoesWith имеют такое же значение, то это:

SELECT * 
FROM Equipment 
WHERE BoxNo = GoesWith 
1

Я подозреваю вас имел в виду 'а также', следовательно, OR:

выберите * от оборудования, где BoxNo = 'a123' OR GoesWith = 'a123'

Будьте немного осторожны, чтобы добавить брекетинг, если вам нужны дополнительные ограничения ...

0

Вы искали общее совпадение всех записей в Box, у которых есть еще одна запись, которую они «идут»? если да, то вам нужно автообъединение (который использует псевдонимы для идентификации записей):

select 
    b.BoxNo, 
    g.GoesWith 
from 
    equipment as b 
inner join equipment as g on b.BoxNo = g.GoesWith 

Это определяет все записи, которые имеют коробку соответствия (и которые, что они идут с). Изменить налево, чтобы включить записи, которые не совпадают. Он будет выдавать несколько совпадений, если в поле есть несколько записей GoesWith, но, возвращая DISTINCT b. * Или DISTINCT g. *, Вы можете получить список отдельных совпадений.

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