select
distinct
‘T1’
M,
stuff((select
','+cast(bt1
as
varchar)
from
TABLE_1
b
where
1=1
for
xml
path('')),1,1,'')
N
from
TABLE_1
a
union
all
select
distinct
‘T2’
M,
stuff((select
','+cast(bt2
as
varchar)
from
TABLE_2
b
where
1=1
for
xml
path('')),1,1,'')
N
from
TABLE_2
a
where
1=1
就是一个列
把一个列都串起来
条件1=1是永远成立
这样就可以把所有的串起来了
你写2=2也可以啊
只要条件是永恒的
就可以
如果是sql
server
就可用个自定义函数
----创建查找函数
IF
object_id(
'fn_Find
')
is
not
null
drop
function
fn_Find
GO
CREATE
FUNCTION
fn_Find
(
@SourceString
varchar(100),
--字符串
@seq
int,
--序号
@Seperator
varchar(10)
--分隔符
)
returns
varchar(100)
as
BEGIN
declare
@i
int
--分隔符出现的位置
declare
@j
int
--分隔符出现的序号
set
@SourceString
=
@Seperator
+
@SourceString
+
@Seperator
--对字符串两端进行处理
set
@j
=
0
set
@i
=
charindex(@Seperator,@SourceString)
while
@i
>
0
and
@j
<
@seq
begin
set
@SourceString
=
stuff(@SourceString,1,@i,
'
')
set
@i
=
charindex(@Seperator,@SourceString)
set
@j
=
@j
+
1
end
return
case
when
charindex(@Seperator,@SourceString)
>
0
then
substring(@SourceString,1,charindex(@Seperator,@SourceString)
-
1)
else
NULL
end
END
GO
----测试
declare
@str
varchar(100)
declare
@Seperator
varchar(10)
set
@str
=
'a;bc;de;fg;hij;k
'
set
@Seperator
=
';
'
select
dbofn_Find(@str,1,@Seperator)
select
dbofn_Find(@str,2,@Seperator)
select
dbofn_Find(@str,3,@Seperator)
select
dbofn_Find(@str,4,@Seperator)
select
dbofn_Find(@str,5,@Seperator)
select
dbofn_Find(@str,6,@Seperator)
select
dbofn_Find(@str,7,@Seperator)
--drop
function
fn_Find
SQL截取字符串函数:
A截取从字符串左边开始N个字符
以下是代码片段:
Declare @S1 varchar(100)
Select @S1='>
以上就是关于数据库中IP字段中,两个IP的用分号隔开,不用逗号,用SQL实现全部的内容,包括:数据库中IP字段中,两个IP的用分号隔开,不用逗号,用SQL实现、用一个或两个SQL语句实现,access中的、sql数据库截取字符串函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)