SQL Создать имя столбца в цикле WHILE или FOR NEXT - PullRequest
1 голос
/ 01 апреля 2020

Я выбираю отдельные значения из 20 столбцов в запросе, как показано ниже, и спрашиваю себя, можно ли сделать это более аккуратно, используя al oop? Прочитав некоторые ответы здесь для похожих тем, кажется, что общее мнение, что Dynami c SQL следует избегать?

В моем случае, я просто ищу трудный закодировать «Дефект» и объединить целочисленную переменную до конца для каждого l oop, то есть 1,2,3,4 .... 20. Возможно ли это как-то? Мой текущий запрос выглядит так, и выглядит не очень красиво!

SELECT Defect1 AS HashKeys FROM VisionMachineResults
UNION
SELECT Defect2 FROM VisionMachineResults
UNION
SELECT Defect3 FROM VisionMachineResults
UNION
SELECT Defect4 FROM VisionMachineResults
UNION
SELECT Defect5 FROM VisionMachineResults
UNION
SELECT Defect6 FROM VisionMachineResults
UNION
SELECT Defect7 FROM VisionMachineResults
UNION
SELECT Defect8 FROM VisionMachineResults
UNION
SELECT Defect9 FROM VisionMachineResults
UNION
SELECT Defect10 FROM VisionMachineResults
UNION
SELECT Defect11 FROM VisionMachineResults
UNION
SELECT Defect12 FROM VisionMachineResults
UNION
SELECT Defect13 FROM VisionMachineResults
UNION
SELECT Defect14 FROM VisionMachineResults
UNION
SELECT Defect15 FROM VisionMachineResults
UNION
SELECT Defect16 FROM VisionMachineResults
UNION
SELECT Defect17 FROM VisionMachineResults
UNION
SELECT Defect18 FROM VisionMachineResults
UNION
SELECT Defect19 FROM VisionMachineResults
UNION
SELECT Defect20 FROM VisionMachineResults

1 Ответ

1 голос
/ 01 апреля 2020

Не могли бы вы попробовать UNPIVOT?

SELECT DISTINCT [value]
FROM VisionMachineResults
UNPIVOT
(
    [value] FOR [column] IN ([Defect1], [Defect2], ... [Defectn])
) UNPVT;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...