我有一個執行許多選擇陳述句的 T-SQL 腳本。大多數情況下,這些陳述句不回傳任何內容,因此輸出顯示如下:
腳本結果。
如果結果為空,有沒有辦法不顯示選擇的標題?
uj5u.com熱心網友回復:
您可以選擇 #temp 表,并且僅在插入任何行時才從中選擇。
SELECT <cols> INTO #a
FROM dbo.somewhere
WHERE …;
If @@ROWCOUNT > 0
BEGIN
SELECT <cols> FROM #a;
END
SELECT <cols> INTO #b
FROM dbo.somewhere_else
WHERE …;
If @@ROWCOUNT > 0
BEGIN
SELECT <cols> FROM #b;
END
…
或者,如果所有結果集都相同,您可以這樣做:
DECLARE @rc int = 0;
SELECT <cols> INTO #a
FROM dbo.somewhere
WHERE …;
SET @rc = @@ROWCOUNT;
SELECT <cols> INTO #b
FROM dbo.somewhere_else
WHERE …;
SET @rc = @@ROWCOUNT;
...
IF @rc > 0
BEGIN
SELECT <cols> FROM #a
UNION ALL
SELECT <cols> FROM #b
UNION ALL
...;
END
甚至:
SELECT <cols> INTO #x FROM
(
SELECT <cols> FROM dbo.somewhere
UNION ALL
SELECT <cols> FROM dbo.somewhere_else
UNION ALL
...
) AS x;
IF @@ROWCOUNT > 0
BEGIN
SELECT <cols> FROM #x;
END
如果您需要知道一行來自哪個表:
SELECT <cols> INTO #x FROM
(
SELECT src = 'somewhere', <cols> FROM dbo.somewhere
UNION ALL
SELECT src = 'somewhere_else', <cols> FROM dbo.somewhere_else
...
) AS x;
IF @@ROWCOUNT > 0
BEGIN
SELECT src, <cols> FROM #x;
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/448479.html
