13 三種方式替換SQL Server中的NULL值(Different ways to replace NULL in Sql Server)

來源:互聯網
上載者:User

標籤:

在Sql Server中有三種方式對查詢結果中的NULL值進行替換。

如有下面的一張表:

我們可以通過自串連(Self-Join)的方式一張員工名和其對應的經理名的表:

SELECT E.[Name],M.[Name]  FROM [tblEmployee] AS ELEFT JOIN [tblEmployee] AS MON E.ManagerId = M.EmployeeId

我們可以看到,Todd對應的Manger為NULL,這說明Todd應該是公司的最高層,他沒有經理。但是這樣顯示很不友好,我們希望如果Todd沒有經理,那麼他的經理名顯示為“No Mnager”,如:

文章開頭已經提到了,有三種方式可以替換查詢結果中的NULL值,下面我們分別介紹。

一)使用ISNULL()函數替換。

SELECT E.[Name],ISNULL(M.[Name],‘No Manager‘)  FROM [tblEmployee] AS ELEFT JOIN [tblEmployee] AS MON E.ManagerId = M.EmployeeId

ISNULL()函數的第一個參數如果為NULL值,那麼返回結果為第二個參數。

二)使用COALESCE()函數

SELECT E.[Name],COALESCE(M.[Name],‘No Manager‘)  FROM [tblEmployee] AS ELEFT JOIN [tblEmployee] AS MON E.ManagerId = M.EmployeeId

大家可以看到,在我們的這個例子中ISNULL函數和COALESCE函數的使用方式是一樣的。其實這兩個函數是有區別的,其具體區別在接下來的文章中會介紹。

三)使用CASE WHEN THEN ELSE END語句

SELECT E.[Name],CASE WHEN M.[Name] IS NULL THEN ‘No Manager‘ ELSE M.[Name] END  FROM [tblEmployee] AS ELEFT JOIN [tblEmployee] AS MON E.ManagerId = M.EmployeeId

這個語句有點像C#等進階語言的if else if else if else... 語句。如果WHEN後的條件成立,則會去到THEN語句,反之去到ELSE語句。在SQL中可以有很多個WHEN THEN ELSE串聯起來去作為檢測條件。

 

13 三種方式替換SQL Server中的NULL值(Different ways to replace NULL in Sql Server)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.