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
結果截圖:
也就顯示成了用逗號分隔的樣子。