SQL-在许多不同的表和列中搜索短语?

时间:2019-05-06 21:00:57

标签: sql oracle-sqldeveloper

我说有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 :(得分:-1)

您编写的脚本中没有语法错误。我只是在脚本中给出了静态值,并且脚本没有错误地运行。您可以检查以下脚本-

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%'