2011-07-21 12 views
0

MSSQL 2008のsprocには、単一のint出力パラメータがあります。値はNULLでもかまいません。SQL ServerプロシージャのパラメータNULLの場合

私は1つの行を返します巧妙な単一のSELECT文記述しようとしています: をPARAM値が移入された場合に、PARAM値がnullの場合、= 0

をissoftdeletedトップ1行を返し、その行 を返します

すべてのアイデアありがとう。

答えて

1
SELECT 
    TOP (CASE WHEN @param IS NULL THEN 2000000000 ELSE 1 END) 
    ... 
FROM 
    Mytable 
WHERE 
    SomeID = @param 
    OR 
    (@param IS NULL AND issoftdeleted = 0) 
ORDER BY 
    something --to make the top meaningful 

使用すると、1つの行を期待する場合@paramが設定されているときにTOPを使用して個人的には(1)

、私は、IF文と2つの独立したSELECT文を使用して検討したい...

0
SELECT TOP 1 * FROM SomeTable t 
WHERE (@someParam IS NULL AND t.issoftdeleted = 0) OR (t.someColumn = @someParam) 
関連する問題