Как написать запрос SQL, который получает все строки с условием 2 в одном столбце - PullRequest
0 голосов
/ 01 марта 2019

Как написать SQL-запрос, который извлекает все строки с условием 2 в одном столбце?

Я получил таблицу со столбцом с именем type.То, что я хочу сделать, это перечислить все типы значений «имя».Но столбец типа также имеет значение с именем text.Итак, что я хочу сделать, это перечислить все типы имен, которые имеют текстовое значение типа.

Как мне этого добиться?

ID     Type     Value
1      Name    Name1
1      Text    "Hello"
2      Text    "Hello test"
2      Name    Name2
3      Name    Name3
4      Name    Name4
5      Name    Name5

Я хочу только вернуть значение имени, котороеимеет тип текста.Таблица имеет два типа, и я хочу, чтобы она возвращала только все типы «Имя» с типом текста

Ожидаемый результат:

ID     Type     Value
1      Name    Name1
2      Name    Name2

Поскольку эти дватолько один с типом "текст" со значением.

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

Самостоятельно присоединиться:

select t1.*
from tablename t1
join tablename t2 on t1.id = t2.id
where t1.Type = 'Name'
  and t2.Type = 'Text'
0 голосов
/ 01 марта 2019

Я бы использовал exists:

select t.*
from t
where t.type = 'Name' and
      exists (select 1
              from t t2
              where t2.id = t.id and t2.type = 'Text'
             );

Я бы использовал join, если бы я хотел использовать какие-либо значения из строки "текст".Однако, если я хочу только строку «имя», то я думаю, что exists - это более прямой перевод логики.

0 голосов
/ 01 марта 2019

Это то, что вы хотите?

Select * from
(
select a.* from tbl a join tbl b
on a.ID = b.ID
where
a.Type = 'Name' and b.Type = 'Text'
) tb
where tb.Type = 'Name'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...