❶ sql字段里有逗号隔开的数据,怎么取值
sql字段有逗号隔开,数据取值的方法。
如下参考:
1.查询数据库表的所有字段,直接使用select语句,如下图。
❷ 数据库中,如何用SQL语句实现将两个表联查下相同字段条件下另一字段的所有记录合成一条记录,用逗号隔开
你这里完全就是1个表T1T2T3三列我根本没有看到有3个表
表结构都说不清楚要大家怎么帮你呢?
DECLARE@Ttable(T1varchar(4),T2varchar(4),T3varchar(4))
insertinto@T(T1,T2,T3)values('A2','11','21')
insertinto@T(T1,T2,T3)values('A2','12','22')
insertinto@T(T1,T2,T3)values('A2','13','23')
insertinto@T(T1,T2,T3)values('A2','14','24')
insertinto@T(T1,T2,T3)values('B2','15','')
insertinto@T(T1,T2,T3)values('B2','16','')
insertinto@T(T1,T2,T3)values('C2','','')
insertinto@T(T1,T2,T3)values('C2','','')
insertinto@T(T1,T2,T3)values('D2','','25')
insertinto@T(T1,T2,T3)values('D2','','26')
SELECTA.T1,LEFT(T2,LEN(T2)-1)[T2],LEFT(T3,LEN(T3)-1)[T3]FROM
(
SELECTT1
,(SELECTT2+','FROM@TWHERET1=A.T1FORXMLPATH(''))[T2]
,(SELECTT3+','FROM@TWHERET1=A.T1FORXMLPATH(''))[T3]
FROM@TAGROUPBYT1
)A
❸ sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中,比如:11873,27827, 也可能是好多
1.得到这个字符串。如:111,222,333
2.得到带","字符串的长度。如:11
3.用replace把","去掉,得到长度。如:9
4.到这步,我们就知道,这个字符串有2个逗号,也就是说,有3个有效数据。
5.用while,substring开始循环得到数据,然后插入到表中
如:
set count=0
while(coung<3)--我们已经知道就3个有效数据
begin
set value=substring()---截取到第一个”,“,得到第一个有效数据
执行insert语句。
end
❹ SQL中用逗号来分隔数据
用,分隔数据的读取:
<%
a="a,b,c,d,e,f,g,h,j,k,l"
b=split(a,",")
for i=0 to ubound(b)
response.write(b(i))
response.Write ","
next
%>
用,分隔数据的存入:可以使用多选下拉菜单.
<select name="source" size="7" multiple id="source">
<option value="1">fff</option>
<option value="2">tttt</option>
<option value="3">www</option>
<option value="4">aaa</option>
</select>
你可以试一下,当你选择了多个项目时,request.form("source")的值就是1,2,3 这种格式
❺ SQL 数据库表字段存ID ,逗号隔开,如何显示对应ID的名称
这种数据库设计的比较差。使用方便,但是后续加工比较繁琐。我能想到的是使用游标来对数据进行拆分。思路如下,具体的做法还需要楼主自己实现。
1.建两张表(客户拆分表1和客户拆分表2),结构与原来的客户表一致。
这两张表是用来将原来的客户表的“相关业务员”字段按照逗号拆分成记录。
2.建立两层游标。--主要思路就是将“相关业务员”字段中的数据按照逗号拆分成行。
外层游标将“客户表”每条记录插入到“客户拆分表1”中。
内层游标获得“客户拆分表1”中的数据,然后做三件事情:
a/截取游标中“相关业务员”第一个逗号前面的字符串,将游标获得的客户名称、业务员编号插入“客户拆分表2”中。
b/删除“客户拆分表1”中的数据,然后截取游标中“相关业务员”第一个逗号后面所有的字符串,将游标数据重新插入到“客户拆分表1”中
c/删除“客户拆分表1”中“相关业务员”= ''的记录。--防止游标死循环。
3.将“用户表”和“客户拆分表2”连接,获得业务员的名称
进过这一步以后,“客户拆分表2”中的记录就是将之前的“客户表”中将“相关业务员”按照逗号拆分
4.建游标(或递归),按照客户名称排序将业务员的名称拼到一个字段中
希望能对你有帮助
❻ sql语句怎样将查询结果逗号分开
如果查询结果为一行
SELECT 查询字段1+',' + 查询字段2 from 表名 where 1=1
如果查询结果为一列,需要将其先转换为xml,再截取符号。
SELECT
STUFF((SELECT ',' + 查询字段 from 表名 where 1=1
FOR XML PATH('')
), 1, 1, '')
❼ 数据库中,如何用SQL语句实现将某字段下的所有记录合成一条记录,用逗号隔开
MS Sqlserver(for xml path的巧用):
select'T1'M,stuff((select','+CAST(T1asvarchar)fromTable_1forxmlpath('')),1,1,'')N
union
select'T2'M,stuff((select','+CAST(T2asvarchar)fromTable_2forxmlpath('')),1,1,'')N
Oracle(自带这样的函数):
selectwm_concat(T1)NfromTable_1;--10g写法
selectlistagg(T1,',')withingroup(orderbyT1)NfromTable_1;--11g写法
❽ sql 两个字段都是逗号隔开 怎么精确查找某个值
/*
你是这个意思:
wid=1 wname=weibo 查询结果是id=1
wid=2 wname=qq 查询结果是id=1
wid=2 wname=weibo 查询结果是id=3
*/
--先创建一个函数,用来拆分字段值
Create Function f_split1(@SourceSql Varchar(8000),@StrSeprate Varchar(2))
Returns @temp Table(id Int Identity(1,1), col Varchar(100))
As
begin
Declare @ch as Varchar(100)
Set @SourceSql=@SourceSql+@StrSeprate
While(@SourceSql<>'')
Begin
Set @ch=left(@SourceSql,Charindex(@StrSeprate,@SourceSql,1)-1)
Insert @temp(col) Values(@ch)
Set @SourceSql=Stuff(@SourceSql,1,Charindex(@StrSeprate,@SourceSql,1),'')
End
Return
End
Go
--以下是查询代码
Select * From (
Select T.id,A.col As Wid,B.col As WName From T
Cross Apply dbo.f_split1(wid,',') A
Cross Apply dbo.f_split1(wname,',') B
where A.id=B.id) S
Where Wid='2' And WName='qq'
--解释,把字段按逗号拆分后,按自增id关联起来,及wid的第一个值跟wname的第一个值关联,以后依次,然后用等号查询你要的值
❾ 如何用sql语句多行数据拼接逗号隔开
mysql中,有标准函数,group_concat(name),直接返回连接好的字符串,并以逗号分割,如果记录比较多,超过函数返回值的最大值,可以调整mysql启动参数,增加显示值的长度。
❿ SQL中建立视图要让两个值用逗号隔开放一个字段里面怎么整
SELECT haoma, stuff((SELECT '-' + fenshu + '-'
FROM b表 t WHERE haoma = b表.haoma FOR xml path('')), 1, 1, '') AS fenshu
FROM b表
GROUP BY haoma