0
以下SQL回報只是根據需要,除了當沒有返回數據格式正確的數據。SQL Server 2008中聚結
期望的結果 - 使用上ename-- 聚結是沒有返回數據時返回「無」。
它是什麼,我就聚結做錯了什麼?爲什麼沒有數據返回時它不返回'無'?
當返回的數據,我們得到了所有的列名,並全部爲空。
所有指針和建議表示讚賞。
select
ltrim(right(convert(varchar(20), tstart, 100), 7))
as 'START TIME',
ltrim(right(convert(varchar(20), tend, 100), 7))
as 'END TIME',
coalesce(vb.tname, 'none') as TITLE,
tr.description as LOCATION
from vwbooks vb
join troom tr
on vb.room = tr.id
where vb.room in(select id
from tblroom
where building = 4971
and vb.tstart >= floor(cast(getdate() as float))
and vb.tstart < ceiling(cast(getdate() as float))
and datepart(hour, vb.tstart) between 6 and 18
也許'vb.tname'永遠不能爲null,當你的數據嗎?也許你打算做一個'left join'來取代vwbooks的所有數據,即使在troom裏沒有匹配的數據?沒有看到一些樣本輸入數據以及實際和預期的結果,很難說什麼可能是錯誤的。 – jpw
@jpw是對的,你返回0行。你正在將它們解釋爲null。你需要明白爲什麼沒有返回。 P,當它連續時,聚結將起作用! – Mike
現貨上。謝謝。 – user761758