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 を2 回記述する必要はありません(EXISTSステートメント内で 1 回、実際の select として 1 回)。

をいじっていましCOALESCEたが、セットではなく 1 つの結果しか許可されません。

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 に答える