一個項目的數據庫設計很奇葩,用戶信息表裏有公司編號和角色編號,如果身兼多職,roleID就追加,用逗號分隔。。。。上傳文件一律進file表,頭像上傳也不例外,然後,file表有個關聯字段,保存所有者的編號。。。。
現在要取公司員工信息,用orm框架寫太麻煩,就改用sql語句取,代碼如下:
SELECT p.xGUID AS id
,p.Name AS name
,p.Account AS account
,p.Email AS email
,p.Sex As gender
,p.Mobile As phone
,p.IsExpert As isExpert
,p.ExpertArea As expertArea
,STUFF((
SELECT ',' + r.Name
FROM UE_Organization r
WHERE p.RoleID like '%' + CAST(r.xGUID AS VARCHAR(50)) + '%'
FOR XML PATH('')),1,1,'') AS roleName
,(SELECT TOP 1 f.Path
FROM UE_File f
WHERE f.LYBMID = p.xGUID
AND f.ScenesType = N'頭像'
ORDER BY CreateTime DESC) AS photo
FROM UE_Person p
JOIN UE_Organization c
ON p.CompanyID = c.xGUID
WHERE c.xGUID = @cid;
雖然奇葩,但裏面有幾個知識點,以後可能會用到,所以先記錄下來,以備後用