首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >只显示字符串的一部分

只显示字符串的一部分
EN

Stack Overflow用户
提问于 2015-02-01 21:18:26
回答 1查看 696关注 0票数 1

我正在选择一个电子邮件地址,但我不想显示完整的电子邮件。只有“@”之前的那部分。我怎么能剪掉它。我知道如何只显示一定数量的字符或数字。但是如何指定只显示到“@”符号为止。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 00:40:41

最近版本的Informix具有CHARINDEX()函数,可用于隔离“@”符号出现的位置:

代码语言:javascript
代码运行次数:0
运行
复制
SELECT LEFT(email_addr, CHARINDEX('@', email_addr)-1) 

如果找不到,CHARINDEX()将返回0,否则返回定位字符串的序号位置。我的测试发现,LEFT()不会抱怨被传递了0或-1,所以执行它是安全的,您不必首先验证是否从CHARINDEX()得到了一些东西。

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TEMP TABLE ex1
(
  email_addr VARCHAR(60)
) WITH NO LOG;

INSERT INTO ex1 VALUES ('ret@example.com.au');
INSERT INTO ex1 VALUES ('emdee@gmail.com');
INSERT INTO ex1 VALUES ('unknown');
INSERT INTO ex1 VALUES (NULL);
INSERT INTO ex1 VALUES ('@bademail');

SELECT LEFT(email_addr, CHARINDEX('@', email_addr)-1) FROM ex1

..。生产:

代码语言:javascript
代码运行次数:0
运行
复制
(expression)

ret
emdee


5 row(s) retrieved.

如果您有一个旧版本的Informix不支持CHARINDEX(),那么您将被迫逐字符遍历字符串,直到找到'@‘符号为止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28268025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档