Мне нужно создать таблицу со столбцами из разных таблиц в разных средах баз данных, сопоставив их с общим ключом для этих таблиц. Многие из этих значений имеют законную причину быть пустыми, но в некоторых средах они даже не существуют, что является проблемой, которую я должен определить, например, путем вставки пользовательской строки, например, «\\ NULL ///"...
У меня есть набор подготовительных сред, где в каждой среде есть много параметров конфигурации в таблице, которые я извлек в огромную таблицу.
Сейчас я пытаюсь написать SQL для представления определенного набора параметров в 2D-таблице (среда и таблица значений параметра x-ref), чтобы идентифицировать проблемные значения, отсутствие некоторых параметров в целом.
SELECT x0.envName,
x1.param1,
x2.param2,
x3.param3
FROM ( ( (
(SELECT envName
FROM paramTable
GROUP BY envName) x0
LEFT JOIN
( SELECT envName,
parameterValue AS param1
FROM paramTable
WHERE parameterName='param1' ) x1 ON x1.envName = x0.envName )
LEFT JOIN
( SELECT envName,
parameterValue AS param2
FROM paramTable
WHERE parameterName='param2' ) x2 ON x2.envName = x0.envName )
LEFT JOIN
( SELECT envName,
parameterValue AS param3
FROM paramTable
WHERE parameterName='param3' ) x3 ON x3.envName = x0.envName)
Если моя таблица параметров выглядит следующим образом:
+ paramTable
=================================================
envName | paramName | paramValue |
-------------------------------------------------
env1 | param1 | abcdef |
env1 | param2 | 123456 |
env1 | param3 | A73BB2 |
env2 | param1 | klmnop |
env2 | param2 | 987654 |
env2 | param3 | |
env3 | param2 | uvwxyz |
Тогда результирующая таблица из этого запроса не будет различать пустые строковые значения (например, как param3 в env2) от несуществующих значений (например, param1 и param3 в env3):
+ ResultQueryResult
=================================================================
envName | param1 | param2 | param3 |
-----------------------------------------------------------------
env1 | abcdef | 123456 | A73BB2 |
env2 | klmnop | 987654 | |
env3 | | uvwxyz | |
Я бы хотел изменить SQL таким образом, чтобы в результате запроса я получил что-то вроде этого:
+ PreferedQueryResult
=================================================================
envName | param1 | param2 | param3 |
-----------------------------------------------------------------
env1 | abcdef | 123456 | A73BB2 |
env2 | klmnop | 987654 | |
env3 | <<<!NULL!>>> | uvwxyz | <<<!NULL!>>> |