导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

一道紧急的SQL语句

wjzhn 2003-12-21 08:22:50
表里的一个(email)字段,我现在要找出这个字段当中包含@后的值,应该怎么写这条SQL语句?
...全文
24 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmlxf 2003-12-21
STUFF
删除指定长度的字符并在指定的起始点插入另一组字符。

语法
STUFF ( character_expression , start , length , character_expression )

参数
character_expression

由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

start

是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。

length

是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。

返回类型
如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。

回复
gmlxf 2003-12-21
select right(email,len(email)-charindex('@',email)) from t
select stuff(email,1,charindex('@',email),'') from t


-- test:
declare @email varchar(100)
set @email='candelaboy@hotmail.com'
select right(@email,len(@email)-charindex('@',@email))
select stuff(@email,1,charindex('@',@email),'')



--
charindex后带有哪些参数?
--
CHARINDEX
返回字符串中指定表达式的起始位置。

语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )

参数
expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

start_location

在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。

返回类型
int

回复
seekmoon 2003-12-21
语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )

参数
expression1

一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。

expression2

一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。

start_location

在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
回复
wjzhn 2003-12-21
怎么没人给我回答了???????????
回复
wjzhn 2003-12-21
charindex后带有哪些参数?
回复
zhentao1982 2003-12-21
关注中。。。
回复
j9988 2003-12-21
select right(email,len(email)-charindex('@',email)) from table
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告