2015-12-29 5 views
0

У меня есть таблица SQL с несколькими столбцами, какSQL запрос, чтобы найти запись по значению в нескольких столбцах

column1, column2, column3, column4, column5, column6,......, column400 

И мне нужен запрос SQL, чтобы найти запись, которые соответствуют значению от колонка3 до column400.

Для экс:

select * 
from table 
where name in (column3,column4,column5, -----, column400). 

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

ответ

0

Простой путь

Select * 
from table 
where column1 = "name" && column2 = "name" ....... and column8 = "name" 

на основе ваших требований вы можете использовать и OR,

+0

#Manjunath, это не представляется возможным поставить имена столбцов в которых условия, потому что есть слишком много столбцов (более 400) для сравнения. Поэтому мне нужен динамический способ сравнить одно значение с несколькими столбцами. – user3848036

1
select 
from table t1, table t2 
where t1.column8 = t2.column3 
    and t1.primary_key = t2.primary_key 
+0

[Плохие привычки пинать: использование JOIN в старом стиле] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins. aspx) - стиль старого стиля * разделенный запятыми список таблиц * был заменен на * правильный * ANSI 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** более 20 лет ** назад) и его использование не рекомендуется –

+0

, это не поможет .............. столбцы, в которых условие является динамическим, и тоже может быть более 400. Поэтому мы не можем определить в where where. Нам нужен динамический путь. – user3848036

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