[英]check for EMAIL format in ROW and return value inside SELECT query
我有一個名為 user_data 的表和幾列像LOGIN_NAME
LOGIN_NAME列可能包含“emailformat@email.com”或僅包含“用戶名”
我需要知道我是否可以運行 select 查詢並返回 emailAddress 如果行具有 email 類型格式,否則返回 userName 如果它是非電子郵件格式。
示例 - (我正在嘗試使用此創建 JSON 格式):
這里 signInType 是用戶名,因為 Markus Dave 是一種非電子郵件格式(LOGIN_NAME 是一行的值為 Markus Dave ->
{
"signInType": "userName",
"issuerAssignedId": "Markus Dave"
}
這里 signInType 是emailAddress因為 follyrichard@gmail.com 是 email 格式(LOGIN_NAME 是一行的值為 follyrichard@gmail.Z4D236D9A2D102C5FE6AD1C50DA4BEC
{
"signInType": "emailAddress",
"issuerAssignedId": "follyrichard@gmail.com"
}
這是我可以生成的查詢:
SELECT 'signInType' AS signInType
, LOGIN_NAME AS issuerAssignedId
FROM USER_DATA
FOR JSON AUTO;
對於 signInType 字段,我需要使用相同的字段 LOGIN_NAME 並檢查它是否是 email 然后根據它進行准備。
我在表中有 10 個用戶,我需要創建 10 個字段 JSON。
您應該能夠使用case
表達式:
SELECT (CASE WHEN LOGIN_NAME LIKE '%@%' THEN 'emailAddress' ELSE 'userName' END) as signInType,
LOGIN_NAME AS issuerAssignedId
FROM USER_DATA
FOR JSON AUTO;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.