Я согласен с приведенными выше комментариями, что это звучит так, будто у вас есть субоптимальный дизайн схемы. Вероятно, вы столкнетесь с проблемами производительности, если попытаетесь сделать это на большом наборе данных.
Это означает, что вы можете отключить столбцы, чтобы преобразовать их в строки. Вот пример, поднятый дословно из статьи Using PIVOT and UNPIVOT о Technet. Вместо 75, я использовал 4:
--Create the table and insert values as portrayed in the previous example.
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,
Emp3 int, Emp4 int, Emp5 int);
GO
INSERT INTO pvt VALUES (1,4,3,5,4,4);
INSERT INTO pvt VALUES (2,4,1,5,5,5);
INSERT INTO pvt VALUES (3,4,3,5,4,4);
INSERT INTO pvt VALUES (4,4,2,5,5,4);
INSERT INTO pvt VALUES (5,5,1,5,5,5);
GO
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM
(SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
FROM pvt) p
UNPIVOT
(Orders FOR Employee IN
(Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt
WHERE VendorID = 1 AND orders = 4;
Это приводит к следующему результату:
+--+----------------------------------------+
| | VendorID Employee Orders |
+--+----------------------------------------+
| | 1 Emp1 4 |
| | 1 Emp4 4 |
| | 1 Emp5 4 |
+--+----------------------------------------+
эти все столбцы со строками? Вам нужен список имен столбцов, чтобы быть динамичным, или вы в порядке с жестким кодированием? –
Кажется, что там где-то есть недостаток схемы. Но вы хотите знать, имеет ли какая-либо строка в таблице этот том или вы будете смотреть на определенную строку, когда вы это сделаете? –
, он должен быть динамическим, поскольку его нужно будет запускать в разных базах данных и таблицах. и они бы не были строковыми колонками .. я слишком много спрашиваю здесь? – osmo