0

我有一段这样的代码:

IF  EXISTS(SELECT VALUE
                FROM   tableA
                WHERE  nameid = 'thisName')
BEGIN   
    SELECT distinct VALUE
    FROM   tableA
    WHERE  nameid = 'thisName'
    ORDER BY value
END

ELSE BEGIN     
    SELECT distinct VALUE
    FROM   tableB
    WHERE  nameid = 'thisName'
    ORDER BY value
END

基本上从 中选择一些东西tableA,如果我在那里找不到结果,请在tableB.

有没有更有效的方法来写这个?所以我不必写tableA两次 select from (一次在EXISTS语句内,一次作为实际选择)。

我在玩弄COALESCE,但它只允许一个结果,而不是一组。

4

1 回答 1

1

试试这个

    SELECT distinct VALUE
    FROM   tableA
    WHERE  nameid = 'thisName'
    ORDER BY value
if(@@ROWCOUNT = 0)
BEGIN 
    SELECT distinct VALUE
    FROM   tableB
    WHERE  nameid = 'thisName'
    ORDER BY value
END
于 2016-01-13T15:57:16.863 回答