1. 程式人生 > 實用技巧 >SQL 將一個欄位處理後插入另一個欄位(如QQ號變郵箱)

SQL 將一個欄位處理後插入另一個欄位(如QQ號變郵箱)

一、前言

  在專案中,我們將一個欄位處理後新增到另一個欄位,如 QQ號 轉 郵箱 、電話號碼轉後六位為密碼、身份證擷取後6位轉密碼、姓名轉姓氏和名字等

  QQ號-》郵箱:1123195494-》[email protected]

  電話號碼-》密碼:18888888888-》88888888

  身份證-》密碼:522322111111112020-》112020

  這些都是我們經常遇到的轉化,通過程式碼我們是擷取,那通過 SQL 我們是如何實現呢?

二、解決方法

  我這邊以QQ郵箱轉QQ號為例,比如資料庫中,我的QQ號碼為空,我需要將QQ號這裡使用QQ郵箱的陣列填充。

  接下來,我需要解析 QQ 郵箱,將 QQ 郵箱擷取為兩半 “@”符號的前和後。

接下來我們聯合使用起來就可以得到 QQ 號了

  檢視資料

SQL 程式碼:

/* 查詢 QQ郵箱 和  QQ 欄位 */
SELECT SC.EMailAddress as QQ郵箱,SC.Qq as QQ號 FROM [Schoolmate].[ContactInformations] AS SC

/* 獲取 QQ號 的函式 ,但由於 QQ號的位數不一樣,所以這裡的 11 是可變的 */
SELECT SUBSTRING('[email protected]',0,11)

/* 獲取@所在的位置 */
SELECT CHARINDEX('@','[email protected]')

/* 更新資料庫 */ UPDATE [Schoolmate].ContactInformations SET Qq= (SELECT SUBSTRING(EMailAddress,0,(SELECT CHARINDEX('@',EMailAddress))))