在没有UNION的情况下以其他形式重写SQL查询

时间:2016-11-09 19:59:11

标签: sql hql

任何人都可以帮助我在没有UNION的情况下重写此查询吗?

我需要在没有UNION的情况下在HQL中使用此查询。有没有其他方法如何加入这样的两个选择?

我的观点是,我需要在同一个表中将来自这两个查询的结果合并到一个结果中。谢谢!

SELECT tab.name AS name FROM Table tab 
WHERE tab.name LIKE '%abc%' 
UNION 
SELECT TO_CHAR(tab.id) AS name FROM Table tab 
WHERE  tab.id = 5

2 个答案:

答案 0 :(得分:1)

这相当于:

SELECT  CASE 
            WHEN tab.id = 5 THEN TO_CHAR(tab.id)
            ELSE tab.name 
        END AS name 
FROM Table tab 
WHERE tab.name LIKE '%abc%' 
OR tab.id = 5

答案 1 :(得分:0)

CREATE TABLE #TABLE(NAME VARCHAR(100))

INSERT INTO #TABLE(NAME)
SELECT tab.NAME AS NAME
FROM   table tab
WHERE  tab.NAME LIKE '%abc%'

INSERT INTO #TABLE(NAME)
SELECT TO_CHAR(tab.id) AS NAME
FROM   table tab
WHERE  tab.id = 5

SELECT NAME
FROM   #TABLE