sqlserver字符串,sqlserver字符串连接

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

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

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网页空间、营销软件、网站建设、汶上网站维护、网站推广。

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

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 字符串拼接问题

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

以上回答你满意么?

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 字符截取、查找

返回字符串在表达式expression里第一次出现的位置,起始值从1开始算,没找就返回0

描述一下此函数的具体用法:

'%pattern%' 的用法类似于 like '%pattern%' 的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。

查找pattern的结束所在expression的位置,也就是从后面匹配起查找。

查询pattern首次出现的位置。

返回0,开头找不到就返回0,后面无论有多少都不管。

这就相当于精确匹配查找,也就是pattern,expression完全相等。

[] 是指定某些特殊的字符。

[^] 除[]之外的字符串。


当前标题:sqlserver字符串,sqlserver字符串连接
链接URL:http://myzitong.com/article/dsdgsep.html