當前位置:首頁 » 編程語言 » 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.姓名

結果: