iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

資料庫二年級:練習AdventureWorks範例資料庫系列 第 25

[第二十五天]加入額外的欄位

  • 分享至 

  • xImage
  •  

看公司前輩可以在資料表中放入自己的欄位,
像這樣加入"顏色"的欄位:
https://ithelp.ithome.com.tw/upload/images/20221008/20152049OgoYFS7e9X.jpg
讓我很羨慕,
今天我就要來破解!

在[HumanResources].[Employee]裡面,
我們可以看出公司員工有290位,
BusinessEntityID為1到290。

SELECT *
FROM [HumanResources].[Employee]

https://ithelp.ithome.com.tw/upload/images/20221007/20152049ApfWfFozmj.jpg

JOIN [Person].[Person]這張表來看的話,
可以得到更詳細的資料,

  SELECT P.BusinessEntityID
         ,*
  FROM [HumanResources].[Employee] E
  FULL JOIN [Person].[Person] P on P.BusinessEntityID = E.BusinessEntityID
  ORDER BY P.BusinessEntityID

https://ithelp.ithome.com.tw/upload/images/20221007/20152049URgjgSnFgN.jpg
也可以確認員工真的只有290位,
原因是:
BusinessEntityID大於290的
在[HumanResources].[Employee]的資料為NULL。
(表示他們是「人」,不是「員工」)
https://ithelp.ithome.com.tw/upload/images/20221007/20152049NyAfXCjvFh.jpg

這樣我們能夠把[Person].[Person]的資料大致分為

  1. Employee
  2. NOTEmployee
    兩大類。
    可以動工啦:
    這次要使用的是SUBSTRING,
    啊啊啊,錯了,是UNION ALL才對。

UNION ALL的說明文章有很多大神分享過,
我就不獻醜了,
UNION ALL還有另外一個雙胞胎叫UNION,
大家也可以去找相關的資料,
效能上也有不同,
這次我們先用UNION ALL看看。

UNION ALL

--Employee
SELECT 'Employee' '類型'
       ,P.BusinessEntityID
       ,*
FROM [HumanResources].[Employee] E
FULL JOIN [Person].[Person] P on P.BusinessEntityID = E.BusinessEntityID
WHERE P.BusinessEntityID <= 290
  
--UNION ALL結合兩張表
  UNION ALL
  
--NOTEmployee
SELECT 'NOTEmployee' '類型'
       ,P.BusinessEntityID
       ,*
FROM [HumanResources].[Employee] E
FULL JOIN [Person].[Person] P on P.BusinessEntityID = E.BusinessEntityID
WHERE P.BusinessEntityID>290
ORDER BY P.BusinessEntityID

https://ithelp.ithome.com.tw/upload/images/20221007/20152049we29D68uv3.jpg


上一篇
[第二十四天]WITH...AS
下一篇
[第二十六天]瞻前顧後
系列文
資料庫二年級:練習AdventureWorks範例資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言