SQL选择查询以搜索多个列并在合并的列中返回结果

时间:2019-02-08 23:00:29

标签: sql

我们有一个表,其中包含索赔编号,金额和注销代码。我们对每条记录进行多次注销,因此我们有4个单独的实例标记为:

WOCLAIMNO1,WOAMT1,WOCODE1
WOCLAIMNO2,WOAMT2,WOCODE2
WOCLAIMNO3,WOAMT3,WOCODE3
WOCLAIMNO4,WOAMT4,WOCODE4

当前,我们需要运行4个单独的查询,然后将它们全部复制并粘贴到一个电子表格中。我们需要获取每个包含WO代码(包括单词'Warehouse')的记录的结果。

因此,如果采用下面的示例表并使用该条件运行查询,则应该获得预期的输出。我需要的是一种在所有列上仅运行一个查询,而不是分别运行每个查询的方法,这意味着先查询WO1,WO2,WO3,WO4,然后手动将所有结果组合在一起。

样品表 enter image description here

输出量
enter image description here

1 个答案:

答案 0 :(得分:1)

您可以只使用UNION ALL

SELECT 
    WOCLAIMNO1 AS WOCLAIMNO, 
    WOAMT1 AS WOAMT, 
    WOCODE1 AS WOCODE
FROM 
    mytable
WHERE 
    WOCODE1 LIKE '%Warehouse%'
UNION ALL
SELECT WOCLAIMNO2, WOAMT2, WOCODE2 FROM mytable WHERE WOCODE2 LIKE '%Warehouse%'
UNION ALL
SELECT WOCLAIMNO3, WOAMT3, WOCODE3 FROM mytable WHERE WOCODE3 LIKE '%Warehouse%'
UNION ALL
SELECT WOCLAIMNO4, WOAMT4, WOCODE4 FROM mytable WHERE WOCODE4 LIKE '%Warehouse%'