Как написать несколько столбцов "в" SQL запрос синтаксиса? - PullRequest
1 голос
/ 09 апреля 2019

Как написать несколько столбцов "в" синтаксис запроса SQL?

Пример: -

Я ищу имя: Питер во всех этих 3 столбцах (или) любой из этих3 столбца: colA, colB, colC из таблицы: TableA

select * from TableA
where (colA, colB, colC) in 'Peter'

Таблица содержит столбцы в сводном формате.Альтернативой было бы .. написание запроса объединения для каждого столбца в синтаксисе.

Ответы [ 3 ]

9 голосов
/ 09 апреля 2019

Можете ли вы попробовать

select * from TableA
where 'Peter' in (colA, colB, colC) 
4 голосов
/ 09 апреля 2019

В зависимости от мощности набора данных, значения в этих столбцах равны «Петру», эффекты могут быть одинаковыми или разными для следующих двух сценариев:

select * from TableA
where colA = 'Peter' OR colB = 'Peter' OR colC = 'Peter'

и

select *
from TableA
where colA = 'Peter'

union

select *
from TableA
where colB = 'Peter'

union

select *
from TableA
where colC = 'Peter'

Однако я рекомендую использовать версию UNION, поскольку она может дать лучшую производительность в сценариях, где количество элементов "Питер" в каждом столбце невелико.

2 голосов
/ 09 апреля 2019

В вашем случае это идеально, так как вы ищете одно имя

select * from TableA
where colA='Peter' OR colB='Peter'OR colC='Peter'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...