sqlserver字串,sqlserver包含字符串

sqlserver如何在字符串中间增加字符

直接用估计没有,可以定义一个函数转一下,MSSQL中有个stuff函数

10年专注成都网站制作,成都定制网站,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都定制网站,高端网页制作,对食品包装袋等多个领域,拥有多年的营销推广经验。

在指定位置替换或增加字符,比如:

SELECT STUFF('12345678', 2, 3, 'abc')

SELECT STUFF('12345678', 2, 0, ':')

但只能插入一个位置。

建议自定义一个字符串处理函数,然后在语句中调用吧

比如

create function dbo.fn_setColon (

@oldstr varchar(4000) )

returns varchar(4000)

as

begin

declare @outstr varchar(4000)

set @outstr=''

while (len(@oldstr)2)

begin

set @outstr=@outstr+left(@oldstr,2)+':'

set @oldstr=right(@oldstr, len(@oldstr)-2)

end

if @oldstr''

begin

set @outstr=@outstr+@oldstr

end

return @outstr

end

select dbo.fn_getColon('123456789')

第二种情况可以先把字符串中的字母替换掉,然后再调用该函数,建议还是通过前端程序来处理字符串。

sqlserver中如何把字符串转换成数字

在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:

1. convert(int,字段名) 例如:select convert(int,'3')

2. cast(字段名 as int) 例如:select cast('3' as int)

其实,一般情况下没有必要把字符串转换为数字类型

假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQL SERVER会自动把字符串转换为数字再比较的!

例如:

select da.TITLE_NAME,dsc.NAME

from dbo.DV_DUTY dd

inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA)

left join DV_ASSET da on(da.ID=dd.RECORD_ID and dd.TYPE='2')

where dd.AREA is not null

这个SQl中,inner join DV_SECOND_CLASS dsc on (dsc.ID=dd.AREA) 中dsc.ID为数字类型,dd.AREA为字符类型,相当于这样on(1='1')的判断,这时候就会自动吧字符串的'1'转换为数字类型再比较的。

但是也有弊端,一旦字符类型转换为数字类型出错(说明字符串的确就非数字组成的),SQL就会抛出异常。

SQL SERVER 2005中有判断字段是否为数字的函数:

ISNUMERIC(字段名) -----假如字段是数字类型返回1,不是就返回0

但是好像有的时候不好使,比如:select isnumeric('3,34') 就返回1

说明这个函数对字段值中全是数字但是数字间用“,”和“.”(逗号或点)隔开的都视为数字了!

sqlserver 字符串是否相等

要用 CHARINDEX() 来判断,并且需要判断长度

比如如下

select * from table where charindex(字段1,字段2)0 and len(字段1)=len(字段2)

简单解释就是字段1与字段2长度一致,并且包含在其中,那么这样就可以判断两个字符串相等了

sqlserver 怎么分割字符串

如楼上给的 单独分割一部分    也可用下面的函数 分割出一个集合

-- 1.0 拆分字符串 参数 @strSource要操作的字符串 @strSeparator分隔符

CREATE FUNCTION [dbo].fn_splitStr( @strSource NVARCHAR(4000),@strSeparator NVARCHAR(10) )

RETURNS @tbResult TABLE(id INT IDENTITY(1,1),rs NVARCHAR(1000))

AS

BEGIN

DECLARE @dwIndex INT,@strResult NVARCHAR(1000),@dwSeparatorLen INT=LEN(@strSeparator);

SET @dwIndex = CHARINDEX(@strSeparator,@strSource);-- 取得第一个分隔符的位置

WHILE @dwIndex0

BEGIN

SET @strResult = LEFT(@strSource,@dwIndex-1);

INSERT @tbResult VALUES(@strResult);

--将要操作的字符串去除已切分部分

SET @strSource = SUBSTRING(@strSource,@dwIndex+LEN(@dwIndex),LEN(@strSource));

SET @dwIndex = CHARINDEX(@strSeparator,@strSource); --循环量增加

END

--处理最后一节

IF LEN(@strSource)  0 INSERT @tbResult VALUES(@strSource)

RETURN;

END

GO

SQLSERVER 字符串拼接问题

字符串要打引号的,数值型才不用打,最直接的方法是把你这些字符串换成具体的内容自己拼接一下检查,向你上面的string strsql="select * from jpsx_ddl where class= 城市"; 而城市是个字符串,所以要加单引号string strsql="select * from jpsx_ddl where class=' " + cls + " ' ";

以上回答你满意么?

MySQL、SQLServer判断字符串是否包含某字符

MySQL:

在MySQL中使用FIND_IN_SET( st , str )函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;

SQLServer:

在SQLServer中使用CHARINDEX(','+ st +','  ,  ','+ str +',')函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;

注意:在SQLServer函数中,st必须为字符串,使用int则无效,如果是数字类型字符,必须使用双引号。


文章名称:sqlserver字串,sqlserver包含字符串
分享网址:http://scyanting.com/article/hdhphd.html