首页 > 解决方案 > 使用if条件的sql多场景

问题描述

我有列电子邮件,对于某些 ID,有多个 .

email
adi@gmail.com
lim@yy.com lim@ey.com
kim@ec.com kim@ef.com ki@yy.com

我的要求是只获得第一个 id

我的查询:

select SUBSTRING(email, 0, CHARINDEX(' ', email)) AS [First]
from aditya_dbprofile

这是可行的,但是在有单个电子邮件的情况下,它会显示为空白。

帮助!!

标签: sqlsql-server

解决方案


可能的解决方案是在值之后添加空格email并使用LEFT()or SUBSTRING()

SELECT LEFT(email, CHARINDEX(' ', CONCAT(email, ' '))) AS [First]
FROM aditya_dbprofile

-- or

SELECT SUBSTRING(email, 1, CHARINDEX(' ', CONCAT(email, ' '))) AS [First]
FROM aditya_dbprofile

推荐阅读