sqlserver子串,sqlserver字符串

SQL怎么拼接字符串

不同的数据库,相应的字符串拼接方式不同,通过对比加深一下记忆。

为富蕴等地区用户提供了全套网页设计制作服务,及富蕴网站建设行业解决方案。主营业务为网站建设、网站制作、富蕴网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

一、MySQL字符串拼接

1、CONCAT函数

语法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定长与不定长均可以

连接两个字符串

连接多个字符串

2、"+"操作符

连接两个字符串

 

连接多个字符串

3、假如其中一个字段为NULL,则用结果用空格代替NULL。

 

二、Oracle字符串拼接

1、CONCAT函数

语法格式:CONCAT(char c1, char c2) ,其中char代表字符串,定长与不定长均可以

连接两个字符串

连接多个字符串

使用CONCAT函数的嵌套实现。

2、"||"操作符

连接两个字符串

连接多个字符串

3、假如其中一个字段为NULL,则用结果用空格代替NULL。

扩展资料

字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。

字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j"。

而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。

字符串函数的应用

1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.

例:concat(‘11’,'aa’)='11aa’;

2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:copy(‘abdag’,2,3)=’bda’

3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’

4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’

5、求字符串长度 length(s) 例:length(‘12abc’)=5

在ASP中 求字符串长度用 len(s)例: len("abc12")=5

6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.

例:pos(‘ab’,’12abcd’)=3

7、字符的大写转换。Upcase(ch) 求字符ch的大写体。

例:upcase(‘a’)=’A’

8、数值转换为数串。 过程 Str(x,s) 把数值x化为数串s.

例:str(12345,s); 结果s=’12345’

9、数串转换为数值。 过程val(s,x,I) 把数串s转化为数值x,如果成功则I=0,不成功则I为无效字符的序数,第三个参数也可不传

例:val(‘1234’,x,I);结果 x:=1234

参考资料:百度百科 字符串函数的应用

SQLserver 怎么把查出的字符串结果作为子查询条件

我先说下思路,等下可以详细讲

第一种方法你可以用一个自定义的分隔函数(表值函数)去得到001,002,003的三行记录

方法二:你可以逆向处理,如

select * from B

where (select top 1 A.U_NO+',' from A) like B.U_NO+','

加','是为了不会匹配错误

附上一个字符串分隔函数:

create function Split(@STR varchar(max),@Separator varchar(1000))

RETURNS @T TABLE(ID varchar(1000))

begin

if(len(@Separator)=0)

set @Separator=','

DECLARE @TName VARCHAR(1000)

SELECT @STR=RTRIM(@STR)+@Separator

WHILE CHARINDEX(@Separator,@STR)0

BEGIN

SELECT @TName=LEFT(@STR,CHARINDEX(@Separator,@STR)-1)

SELECT @STR=STUFF(@STR,1,CHARINDEX(@Separator,@STR),'')

insert into @T(ID)values(@TName)

END

RETURN

end

go

模糊匹配SQL语句写法 SQLSERVER

declare @str varchar(max)='6688 sasaaaa wty',@sql varchar(max)

set @sql='select * from mingTest where 1=0 '

;with cte as(select name=SUBSTRING(A.[str],number,CHARINDEX(' ',A.[str]+' ',number)-number) from A JOIN master..spt_values ON type='p' and number between 1 and LEN(@str)

WHERE CHARINDEX(' ',' '+A.[str],number)=number)

select @sql=@sql+'or [str] like ''%'+name+'%''' from cte where name''

EXEC @sql


分享标题:sqlserver子串,sqlserver字符串
转载来源:http://ybzwz.com/article/hdgips.html