当前位置:首页 » 编程语言 » Sql中逗号链接
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

Sql中逗号链接

发布时间: 2022-10-17 11:05:51

A. oracle sql。 如何用逗号连接几个文字列

基本上而言这种方式已经是最简单的了。
你想,首先你要写文字列,这部分是不能省,也没办法省的,那么剩下的就是中间的逗号,就算你先把逗号加在每个字段的前面或者后面,那么最后不是还要去掉一个逗号,这样反而增大了查询的繁琐性。
当然,如果真的想写,自己写一个函数也可以(其实就是加一个分隔符,可以用循环的方式也可以用最后一个分隔符去掉的方式),不过这种需求应该不多,至少我没见过几回,所个人觉得必要性不大。
还有一种方式是先列转行(说成行转列也行,反正都是旋转90度),然后用wmsys_concat来做
不过不管哪种方式个人觉得,现在的这种方式更便于操作,改变。假设,今天是5个字段的合并,假设明天改变需求,要求6个或者4个,那么对于这个语句来说可能稍微增加或减少几个字符就行了,如果是函数或者列转行,那么就要麻烦很多了。

B. sql查询如何将两个字段用逗号连接起来

可以通过“||”拼接的方式实现.
sql:select t.name||','||t.age from tablename t;
解释:oracle中用“||”来进行字符串拼接,上面的就会出现如“zhangsan,15”的样式。

C. SQL 把查询到的一列数据用逗号隔开连城字符串要怎么写

USE [db01]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [dbo].[P_公共_单列值转多行]

@tb_from nvarchar(255), --源表
@tb_to nvarchar(255), --临时存放表,临时表和源表都要有以下两个字段:主字段,分列段
@zhu_lie nvarchar(255), --主字段名,如ID,
@feng_lie nvarchar(255) --要分列的列名,如“姓名”

AS
BEGIN
SET NOCOUNT ON;
declare @zhu_value nvarchar(255) --主列数值
declare @feng_value nvarchar(500) --分列数值
declare @sql nvarchar(500) --sql语句
declare @wei1 as integer --记录第一个分号位置
declare @wei2 as integer --记录第二个分号位置

exec ('declare mycursor cursor for (select ' + @zhu_lie + ', '+ @feng_lie +' from ' + @tb_from + ')')
open mycursor
fetch next from mycursor into @zhu_value,@feng_value

while @@fetch_status = 0
begin
set @wei1 = 1
set @wei2 = 1

while @wei2 > 0
begin
set @wei2 = charindex(';',@feng_value,@wei1)
set @sql = ''
if @wei2 =0
begin
set @sql = 'insert into '+@tb_to+'('+@zhu_lie+','+@feng_lie +') values ('''+@zhu_value+''' ,'''+substring(@feng_value,@wei1,len(@feng_value))+''')'
exec(@sql)
end
else
begin
set @sql = 'insert into '+@tb_to+'('+@zhu_lie+','+@feng_lie +') values ('''+@zhu_value+''' ,'''+substring(@feng_value,@wei1,@wei2-@wei1)+''')'
exec(@sql)
set @wei1= @wei2 + 1
end
end
fetch next from mycursor into @zhu_value,@feng_value
end

close mycursor
deallocate mycursor

END

D. sql 如何将查出来的一列用逗号拼接

写个存储过程,声明一个结果用的varchar变量,用游标把读出来的字段拼出来,照着下边的改改就行了
create proc [dbo].[teststr]asbegin declare @result VARCHAR(max)--用来处理结果的变量 declare @resultt VARCHAR(10) set @result=''
begin try deallocate tmpc end try begin catch end catch
declare tmpc cursor for select deviceid from t_carinfo Open tmpc --循环并提取记录 Fetch Next From tmpc Into @resultt--取第一条记录存入@resultt中 While ( @@Fetch_Status=0 ) begin set @result=@result+','+@resultt Fetch Next From tmpc into @resultt----下一条 end --关闭游标 Close tmpc --释放游标 Deallocate tmpc print substring(@result,2,len(@result)-1)--这里就是把第一个逗号去掉,取全部的数据end

E. sql查询结果逗号拼接出来

--这个与字段的类型的长度关系很大,不然出来ckid中间的空格太长不好看
createtabletable1
(
midchar(2),
qidchar(5),
ckidchar(5)
)
insertintotable1
select'A1','KD001','ck001'unionall
select'A1','KD001','ck003'unionall
select'B1','QS123','cd111'unionall
select'B1','QS123','cd112'unionall
select'C1','RT001','rt115'unionall
select'C1','RT001','cf001'unionall
select'C1','RS156','yu116'

--使用forxmlpath
selecta.mid,a.qid,(selectckid+','fromtable1bwherea.mid=b.midanda.qid=b.qidforxmlpath(''))ckidfromtable1agroupbya.mid,a.qid
--或者下面这个使用stuffforxmlpath
selecta.mid,a.qid,stuff((select','+ckidfromtable1bwherea.mid=b.midanda.qid=b.qidforxmlpath('')),1,1,'')ckidfromtable1agroupbya.mid,a.qid

F. 如何用sql语句多行数据拼接逗号隔开

mysql中,有标准函数,group_concat(name),直接返回连接好的字符串,并以逗号分割,如果记录比较多,超过函数返回值的最大值,可以调整mysql启动参数,增加显示值的长度。

G. sql中逗号有什么用

这句话的意思是查询
学生.籍贯,和学生.姓名的总数,因为查询的是两个不同的属性,所以要用逗号分开,就如select
age,name,number
from
students
一样

H. 在SQL语句中条件之间应该用“逗号”连接还是用“AND”连接

连接的逻辑操作符号有很多种,就你目前的情况而言,应该使用 AND

select*from表where条件字段1>15or条件字段2<7and条件字段3in('m','ml')

I. sql 将查询结果用逗号连接显示

select 学校,wmsys.sys_concat(科目)
from tableA
group by 学校

J. sql 2008 表1中查询结果有三个值 ,如果在表2中显示为逗号连接的效果

创建表插入数据:

createtablet1
(namevarchar(100));

insertintot1values('张三');
insertintot1values('李四');
insertintot1values('王五');

执行:

selectt.姓名from
(select姓名=stuff((select','+(name)fromt1forxmlpath('')),1,1,'')fromt1)t
groupbyt.姓名

结果: