❶ 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