SQL - поиск фразы во многих разных таблицах и столбцах? - PullRequest
0 голосов
/ 07 мая 2019

Допустим, у меня 200 запросов, каждый из которых ищет одну и ту же фразу в разных таблицах и столбцах.Чтобы превратить это в один запрос.

До сих пор я вручную запрашивал один за другим, а затем массово запрашивал их в том смысле, что просто нажимал F5, и SQL Developer запускал их по одному -но мне пришлось просмотреть 200 разных результатов.Существует ли эффективный способ их объединения:

select [NON_PORTED_FLAG] from IPTELMGR.MSAG_QUEUE_VIEW where [NON_PORTED_FLAG] like '%Updating%';
select [PORTED] from IPTELMGR.SDL_DL_HEADER$LOG where [PORTED] like '%Updating%';
select [PORTED] from IPTELMGR.SDL_DL_HEADER$HST where [PORTED] like '%Updating%';
select [NUMOFPORTS] from IPTELMGR.AUTOMAC_MODEM_DTL_BKP_1812 where [NUMOFPORTS] like '%Updating%';
select [PORT] from IPTELMGR.VAR_REPORT where [PORT] like '%Updating%';
select [PORTABLE_INDICATOR] from IPTELMGR.EXT_LERG6 where [PORTABLE_INDICATOR] like '%Updating%';
select [PORTED_FLAG] from IPTELMGR.MSAG_QUEUE_VIEW where [PORTED_FLAG] like '%Updating%';
select [TPORT] from IPTELMGR.AUTOMAC_MODEM_DTL_BKP_1812 where [TPORT] like '%Updating%';
select [PORTED] from IPTELMGR.SDL_DL_HEADER where [PORTED] like '%Updating%';

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

РЕДАКТИРОВАТЬ: с UNION ALL,Кажется, я получаю результат пропущенного выражения

select [REPORT_NAME] from IPTELMGR.[IPTEL_REPORTS] where [REPORT_NAME] like '%Updating%'
UNION ALL SELECT [REPORT_GROUP_TITLE] from IPTELMGR.[IPTEL_REPORTS] where [REPORT_GROUP_TITLE] like '%Updating%'
UNION ALL SELECT [ID_REPORT] from IPTELMGR.[IPTEL_REPORTS] where [ID_REPORT] like '%Updating%'
UNION ALL SELECT [REG_FOR_PORT_OUT] from IPTELMGR.[TFS_RESP_ORG] where [REG_FOR_PORT_OUT] like '%Updating%'
UNION ALL SELECT [TPORT] from IPTELMGR.[AUTOMAC_MODEM_DTL] where [TPORT] like '%Updating%'

ПЫТАЛСЯ ПРЕОБРАЗОВАТЬ:

select CAST([REPORT_NAME] AS VARCHAR(1000)) from IPTELMGR.[IPTEL_REPORTS] where CAST([REPORT_NAME] AS VARCHAR(1000)) like '%Updating%'
UNION ALL SELECT CAST([REPORT_GROUP_TITLE] AS VARCHAR(1000)) from IPTELMGR.[IPTEL_REPORTS] where CAST([REPORT_GROUP_TITLE] AS VARCHAR(1000)) like '%Updating%'
UNION ALL SELECT CAST([CALL_AGENT_PORT] AS VARCHAR(1000)) from IPTELMGR.[MANAGED_MODEMS] where CAST([CALL_AGENT_PORT] AS VARCHAR(1000)) like '%Updating%'
UNION ALL SELECT CAST([SIP_TRANSPORT_3_] AS VARCHAR(1000)) from IPTELMGR.[SIP_REPORT_MAPPING] where CAST([SIP_TRANSPORT_3_] AS VARCHAR(1000)) like '%Updating%'
UNION ALL SELECT CAST([SIP_PORT_3_] AS VARCHAR(1000)) from IPTELMGR.[SIP_REPORT_MAPPING] where CAST([SIP_PORT_3_] AS VARCHAR(1000)) like '%Updating%'

Показывает пропущенное выражение.

1 Ответ

0 голосов
/ 07 мая 2019

В написанном вами сценарии нет синтаксической ошибки.Я только что дал статическое значение в вашем скрипте и он работает без ошибок.Вы можете проверить следующий скрипт -

SELECT CAST([REPORT_NAME] AS VARCHAR(1000)) from (VALUES ('TEst'))A (REPORT_NAME) where CAST([REPORT_NAME] AS VARCHAR(1000)) like '%Updating%'
UNION ALL 
SELECT CAST([REPORT_GROUP_TITLE] AS VARCHAR(1000)) from (VALUES ('TEst'))A (REPORT_GROUP_TITLE) where CAST([REPORT_GROUP_TITLE] AS VARCHAR(1000)) like '%Updating%'
UNION ALL 
SELECT CAST([CALL_AGENT_PORT] AS VARCHAR(1000)) from (VALUES ('TEst'))A (CALL_AGENT_PORT) where CAST([CALL_AGENT_PORT] AS VARCHAR(1000)) like '%Updating%'
UNION ALL 
SELECT CAST([SIP_TRANSPORT_3_] AS VARCHAR(1000)) from (VALUES ('TEst'))A (SIP_TRANSPORT_3_) where CAST([SIP_TRANSPORT_3_] AS VARCHAR(1000)) like '%Updating%'
UNION ALL 
SELECT CAST([SIP_PORT_3_] AS VARCHAR(1000)) from (VALUES ('TEst'))A (SIP_PORT_3_) where CAST([SIP_PORT_3_] AS VARCHAR(1000)) like '%Updating%'
...