我有一個select語句,我想說如果這個select語句沒有返回任何行,然後在每個單元格中放一個''。我該怎麼做呢?SQL如果沒有行返回這樣做
回答
這聽起來像你還沒有得到你想要的所有行。真正?我認爲@Joe Sefanelli爲您的解決方案提供了一個重要部分,然後提到您需要將INNER更改爲LEFT聯接。
所以,你說你想顯示單位列表中的所有單位。而且,如果沒有單位數據,則顯示單位和空白數據不存在。
這是一個可能的解決方案。將您的FROM子句更改爲以下內容:
FROM [dbo].[Unit] u
LEFT OUTER JOIN
(
SELECT *
FROM [dbo].[IUA] i
JOIN [dbo].[Reports] r ON r.[Report_ID] = i.[Report_ID]
JOIN [dbo].[State] s ON i.[St_ID] = s.[St_Id]
WHERE r.[Account] = [dbo].[fn_Get_PortalUser_AccountNumber](11-11)
AND r.[Rpt_Period] = '2126'
AND r.[RptName] = 'tfd'
AND r.[Type] = 'h'
) ir ON ir.[Unit_ID] = u.[Unit_ID]
LEFT JOIN [dbo].[UnitType] ut ON u.[UnitType] = ut.[UnitType]
WHERE u.[Unit] IN (SELECT [VALUE]
FROM dbo.udf_GenerateVarcharTableFromStringList(@Units, ','))
;
通過此更改,您將獲得@Units列表中的單位列表。左外連接將包含與每個單元關聯的數據,但如果沒有關聯數據則不會排除單位。
這實際上會返回所有報告期間不起作用,因爲我只想得到2126.有不同報告期間的單位數據,但本報告期間沒有數據。如果我將它移動到where子句中,它仍然不會再返回任何行。 – user380432 2010-09-13 18:00:08
糟糕。誤讀你的關於where子句的評論。 – bobs 2010-09-13 18:06:58
是的,我相信我們是,但這不會再返回....嗯。 – user380432 2010-09-13 18:10:49
試試這個 -
IF NOT EXISTS (SELECT 'x' FROM <TABLE> ....)
BEGIN
-- Your logic goes here
END
問題是我可以有1個單位顯示數據和1個單位,不顯示數據,因此這隻會顯示一個單位的數據,但我希望兩個單位顯示.... – user380432 2010-09-13 16:54:19
@anicolais - 爲您的第二個單位你想要顯示空白數據,看到來自tenfour的答案。這會有幫助嗎? – 2010-09-13 16:55:56
在OP – user380432 2010-09-13 17:01:40
select a, b, c from t
if @@rowcount = 0
select '' as a, '' as b, '' as c
但要確保你明白''
可能有不同的數據類型比列a
,b
和c
。
把你的空白行選擇在基於張貼代碼工會
select x.JobName , x.Description
from MasterJobList x
where x.IsCycleJob = 1
union all
select "" , ""
from MasterJobList x
where not exists
(
select 1
from MasterJobList x
where x.IsCycleJob = 1
)
的底部,我認爲你正在尋找空出從UNITTYPE表中的列因爲這是你唯一的一個」重新加入。在這種情況下,使用
ISNULL(ut.[Description], '') AS UnitType
中有初始查詢如果我說u.number ='e2499',它仍然不返回任何行,它只是不給出任何行。我需要它給出單位號碼,但沒有數據。 – user380432 2010-09-13 17:06:08
然後,您當前的一些INNER連接需要是LEFT連接,具體取決於哪些表沒有找到匹配的行。然後使用ISNULL在我的答案中也將這些列留空。 – 2010-09-13 17:07:31
沒有匹配行的表是IUA,所以我不確定我會在這裏做什麼,因爲在做ISNULL時大多數有轉換錯誤 – user380432 2010-09-13 17:29:03
select top 1 isnull(max(col2),' ') as noNullCol from table1 where col1='x'
最大返回null
這裏沒有行再isnull
函數返回' '
而不是null
值
下面是我用一個列的例子 - 它很容易,只如果沒有產生一個空白行匹配數據集。
select Company from customer where [email protected]
union
select '' where not exists (select 1 from customer where [email protected])
這會在沒有匹配時創建一行空白(s)。
- 1. 有沒有解析int或返回0如果不能這樣做的方法?
- 2. sql沒有返回結果
- 3. 如果SQL沒有返回查詢
- 4. SQL返回行,如果沒有結果發現
- 5. 如果註冊表項存在,如果是這樣做,如果不這樣做
- 6. 如果他們這樣做
- 7. WordPress的如果沒有元字段,然後這樣做 - 如何?
- 8. 的NSString返回NULL,而這樣做NSUTF8StringEncoding
- 9. 如果沒有行返回,返回空值爲NULL的行
- 10. 如果沒有sum(),我不應該這樣做嗎? [Python Codeacademy]
- 11. 如果沒有徘徊然後關閉或不再這樣做
- 12. SQL,如果在指定日期沒有數據,則返回行
- 13. 從SQL查詢返回沒有結果
- 14. SQL沒有返回任何結果?
- 15. SQL SERVER'Contains'沒有返回實際結果
- 16. SQL CONVERT沒有返回最新成果
- 17. PHP SQL沒有結果返回
- 18. java的,「這樣做,如果通過,那麼這樣做」
- 19. 有沒有這樣做的PHP函數?
- 20. 如果如果沒有返回值
- 21. 如果Task.Run的運行沒有返回,它會返回什麼?
- 22. 如果select語句沒有返回任何行,返回什麼?
- 23. 是否有可能做出這樣的計算並將結果返回給MongoDB?
- 24. 如果IN子查詢沒有行,如何返回所有行?
- 25. 返回SQL的結果只有一行
- 26. 如果語句沒有返回結果
- 27. 爲什麼這個SQL返回那樣?
- 28. 這樣的返回結果,在這段代碼中做什麼是lambda函數?
- 29. 沒有辦法做這樣的選擇
- 30. SQL沒有按預期返回行
在每個細胞的什麼? – 2010-09-13 16:53:15
把一個''放在什麼細胞裏? SSRS報告?一個Excel電子表格? – 2010-09-13 16:53:42
我有2個單位。 1有數據,1沒有。我想顯示1個單位的數據,但只顯示所有其他單位數據沒有數據的空白。如果那有意義的話? – user380432 2010-09-13 16:55:12