A. 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 这种格式
B. sql语句怎样将查询结果逗号分开
如果查询结果为一行
SELECT 查询字段1+',' + 查询字段2 from 表名 where 1=1
如果查询结果为一列,需要将其先转换为xml,再截取符号。
SELECT
STUFF((SELECT ',' + 查询字段 from 表名 where 1=1
FOR XML PATH('')
), 1, 1, '')
C. 编写一个sql语句,把b列中的数据用逗号分隔开,变成很多谢谢
这个我做过,拆分逗号分隔符变列
select a,
t.ca,
c.lv,instr(t.ca, ',', 1, c.lv) + 1,
substr(t.ca,
instr(t.ca, ',', 1, c.lv) + 1,
instr(t.ca, ',', 1, c.lv + 1) -
(instr(t.ca, ',', 1, c.lv) + 1)) AS c
from (select a,
',' || b || ',' AS ca,
b,
LENGTH(b),
length(b || ','),
REPLACE(b, ','),
length(REPLACE(b, ',')), --删除逗号的长度
nvl(length(REPLACE(b, ',')), 0), --空值长度为空,因此要将空值替换为0
length(b || ',') - nvl(length(REPLACE(b, ',')), 0) AS cnt --以逗号分隔的字符串个数,先在原来的长度上加1 计算去除所有逗号后字符串长度,再,拿这个
FROM TEST_A) t,
(select LEVEL lv from al CONNECT BY LEVEL <= 100) c
where c.lv <= t.cnt --逗号数量在100以内
D. SQL语句,字段表里某列数据变为用逗号分隔的字符串
sqlserver2005以上版本
select stuff((select ','+a from a for xml path('')),1,1,'')
E. sql字符串怎么按逗号分割
我没看懂你的意思但是我有一样个批量删除的比如
/*
使用存储过程实现如下功能,批量删除实际选中的多个反馈活动。
*/
--包规范
create or replace package pak_activeinfo
as
procere sp_activeinfo
(
i_activeid varchar2
);
end pak_activeinfo;
--包主体
create or replace package body pak_activeinfo
as
procere sp_activeinfo
(
i_activeid varchar2
)
as
activeid1 varchar2(100);
activeid2 varchar2(100);
activeid3 varchar2(10000) := i_activeid;
a number;
b number;
begin
savepoint sp;--回滚点
select instr(activeid3,',') into a from al;
b := a-1;
for i in 1..floor(length(activeid3)/b) loop--改正
--获取第一个编号
select substr(activeid3,1,b) into activeid1 from al;
--修改表
update activeinfo set status = 1 where activeid = activeid1;
--截取第一个编号
select ltrim(activeid3,activeid1) into activeid2 from al;
--去掉,号
select ltrim(activeid2,',') into activeid3 from al;
end loop;
commit;
exception
when no_data_found then
dbms_output.put_line('失败!');
when others then
dbms_output.put_line('读去失败!原因是:'||sqlerrm);
rollback to savepoint sp;
end sp_activeinfo;
end pak_activeinfo;
--测试
begin
pak_activeinfo.sp_activeinfo('1000,1001,1002');
end;
能看懂吗?
按长度用循环去掉逗号!
希望对你有帮助!
F. SQL拆分逗号分隔的字符串
1、首先点击新建查询按钮,新建一个查询。
G. sql查询以逗号分隔的字段
通过测试没有问题,应该是你的拼接语法错了
create table #a
(
aa varchar(50)
)
insert #a values('2,3,9,12,10,')
insert #a values('5,15,13,3,2,')
select * from #a where aa like '%2%'
drop table #a
看了上面的回答,原来要排除12这种可能性啊,也很简单,随手写的测试语句可以参考下
create table #a
(
aa varchar(50)
)
insert #a values('2,3,9,12,10,')
insert #a values('5,15,13,3,2,')
insert #a values('5,35,3,3,12,')
select * from #a where ','+aa like '%,2,%'
drop table #a
H. 如何用sql语句将一列的很多值用逗号分隔开插入
1、将传递过来的值进行分割 用,分割成数组
例如:$var=explode(",",$str);
2、循环数组
3、在循环内查询sql
查询时候 有两种方法 按照sql语法或者PHP语法
sql 用 find_in_set(str1,str2);
php 用 strpos(str1,str2,start);
具体语法格式自己搜索一下吧。
I. 如何把SQL数据表中一个字段的值按逗号分隔存入另外一个表,并删除重复记录
比如找A表中的rank字段以,分开,分别加入到B表的字段中
<%
'rank的值为a,b,c,d,e,f
set rs=server.CreateObject("adodb.recordset")
sql="select rank from a"
rs.open sql,conn,1,3
if not rs.eof then
do while not rs.eof
rank=rs("rank")&",,,,,,,,,,,,,"'这里之所以要加后面的字符串的原因在于:第一是rs("rank")字段中没有",",第二是b表中取的xrank(4)若在rs("rank")没有的情况下,会报错,没以这里加上后面的字符串,就自定义其xrank(4)为空的
xrank=split(rank,",")
set rs1=server.CreateObject("adodb.recordset")
sql1="select * from b"
rs1.open sql1.conn,1,3
rs1.addnew
rs1("b1")=xrank(0)
rs1("b2")=xrank(1)
rs1("b3")=xrank(2)
rs1("b4")=xrank(3)
rs1("b5")=xrank(4)
rs1.update
rs.movenext
loop
end if
%>
J. sql 如何以逗号为分隔符分割一个字段的值
可用substring函数。
创建测试表及数据:
createtabletest
(idvarchar(10));
insertintotestvalues('123abc');
insertintotestvalues('456def');
insertintotestvalues('789ghi');
执行:
selectsubstring(id,1,3)+','+substring(id,4,3)asidfromtest
结果截图:
也就显示成了用逗号分隔的样子。