SQL charindex, substring, replace, ISNUMERIC ,datalength,

(转+积累)SQL charindex, substring, replace, ISNUMERIC ,datalength,

CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:

       CHARINDEX ( expression1 , expression2 [ , start_location ] )

        Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。

        CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数整数“0”。让我们看看下面的函数命令执行的结果:

      CHARINDEX('SQL', 'Microsoft SQL Server')

      这个函数命令将返回在“Microsoft SQL Server”中“SQL”的起始位置,在这个例子中,CHARINDEX函数将返回“S”在“Microsoft SQL Server”中的位置11。
接下来,我们看这个CHARINDEX命令:

     CHARINDEX('7.0', 'Microsoft SQL Server 2000')

      在这个例子中,CHARINDEX返回零,因为字符串“7.0” 不能在“Microsoft SQL Server”中被找到。接下来通过两个例子来看看如何使用CHARINDEX函数来解决实际的T-SQL问题。

,charindex('sss',[column])和charindex('sSs',[column])一样,因为它不区分大小写.

SQL SUBSTRING

SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:

  • MySQL: SUBSTR(), SUBSTRING()
  • Oracle: SUBSTR()
  • SQL Server: SUBSTRING()

最常用到的方式如下 (在这里我们用SUBSTR()为例):

SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字元。请注意,这个语法不适用于SQL Server上。

SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字元。

测试于SQL SERVER  substring, datalength

declare @DD varchar(30)
set @DD=''
select @DD=AddTime from [user] where id=1124
select @DD
select substring(@DD,3,datalength(@DD)-2)

运行结果:
08-12-09
-12-09

注,SQL SERVER中 substring需要三个参数(str,pos,len), datalength()这个和len()有点像,具体区别需要自行找寻.

REPLACE

用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。

语法

REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )

参数

'string_expression1'

待搜索的字符串表达式。string_expression1 可以是字符数据或二进制数据。

'string_expression2'

待查找的字符串表达式。string_expression2 可以是字符数据或二进制数据。

'string_expression3'

替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。

返回类型

如果 string_expression(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_expression(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

示例

下例用 xxx 替换 abcdefghi 中的字符串 cde。

SELECT REPLACE('abcdefghicde','cde','xxx') GO

下面是结果集:

------------ abxxxfghixxx (1 row(s) affected) ssql="update shopdict set content =replace(content,'х','×')" sql="Update xh_skArticle Set title = replace(title,'广广','广告') where id="&id


ISNUMERIC

用ISNUMERIC函数

确定表达式是否为一个有效的数字类型。
例 select max(cast(主键 as numeric)) from 表 where isnumeric(主键)=1



其它函数:
left()
right()


select left('sfswss',2)
sf
select right('sfswss',2)
ss


截断空格,没有trim()。

ltrim()
rtrim()
例ltrim(rtrim(' sss '))='sss'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值