I am not a programmer Ответов: 2

Как сравнить значение из первого столбца со значением из второго


У меня есть следующая таблица:

id---имя------ - contry---Штаты
1----США,ab----- - США---- - ab
2----alb,ac----- - alb---- - ac
3----нм----------булочка----- - Нм
4----но---------но------НТ
5----rsa,ab----- - rsa----- - rb
6----Null------ - - brt----- - rt

Я должен взять значение из столбцов "страна" и "Штаты" и проверить, что эти значения существуют в столбце "имя". Покажите строки, в которых эти значения не существуют.(null или только страна или только Штаты)
например: если в поле "страна" у меня есть значение "США", то в столбце " имя "у меня уже есть это значение "использование", то эта строка мне не показывается. Покажите мне строки, где значение "usa" не существует. То же самое с колонкой "состояния"

Что я уже пробовал:

понятия не имею, что о должен попробовать. Я пытаюсь через "нравится" или "объявить", но не могу найти логику. спасибо за помощь

2 Ответов

Рейтинг:
0

Jörgen Andersson

Возможно, вам придется добавить некоторые или в запрос.
Проверьте это для начала:

SELECT  *
FROM    Table1
WHERE   name NOT LIKE country + '%'
    OR  name NOT LIKE '%' + states
    OR  name IS NULL


I am not a programmer

да-а-а, так гораздо лучше, спасибо :)

Maciej Los

5ed!

Рейтинг:
0

MadMyche

Вы правы в том, что ищете LIKE оператор; просто не забудьте использовать с ним соответствующие подстановочные знаки, использование обоих находится в справочная документация ниже приведен этот простой пример

SELECT  *
FROM    [tablename]
WHERE   [name] NOT LIKE 'USA.%'
Ссылка: LIKE (Transact-SQL) - SQL Server | Microsoft Docs[^]


I am not a programmer

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

MadMyche

Если вы не знаете, какое значение(ы) вы ищете ... тогда вы вообще не используете предложение WHERE.

Maciej Los

Вот это да!