一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Sql Server - 將所有符合條件的結果拼接成一列并用逗號隔開的一個sql語句

將所有符合條件的結果拼接成一列并用逗號隔開的一個sql語句

2019-11-26 18:02MSSQL教程網 Sql Server

把所有符合條件的結果拼接成一列,用逗號隔開的一個sql語句。

代碼如下:


create table tb(id int, value varchar(10)) 
insert into tb values(1, 'aa') 
insert into tb values(1, 'bb') 
insert into tb values(2, 'aaa') 
insert into tb values(2, 'bbb') 
insert into tb values(2, 'ccc') 
go 
create function [dbo].[f_str](@id int) returns nvarchar(1000) 
as 
begin 
declare @str nvarchar(1000) 
set @str = '' 
select @str = @str + ',' + cast(value as nvarchar(900)) from tb where id = @id 
set @str = right(@str , len(@str) - 1) 
return @str 
end 
go 
--調用函數 
select id , value = dbo.f_str(id) from tb group by id 


運行結果: 
將所有符合條件的結果拼接成一列并用逗號隔開的一個sql語句
本來在上面的函數中所有的nvarchar都是varchar類型的,并且上面函數的紅色處在調用cast方法時,并未指定長度。朋友測試后發現,結果會在30個字符 時截斷,原來以為是varchar和nvarchar的區別,我試著將varchar改成了nvarchar,朋友測試的結果是在54個字符處截斷。我查了下,是varchar的默認長度問題,見sql server聯機叢書中下面的說明: 


char 和 varchar 
固定長度 (char) 或可變長度 (varchar) 字符數據類型。 

char[(n)] 

長度為 n 個字節的固定長度且非 Unicode 的字符數據。n 必須是一個介于 1 和 8,000 之間的數值。存儲大小為 n 個字節。char 在 SQL-92 中的同義詞為 character。 

varchar[(n)] 

長度為 n 個字節的可變長度且非 Unicode 的字符數據。n 必須是一個介于 1 和 8,000 之間的數值。存儲大小為輸入數據的字節的實際長度,而不是 n 個字節。所輸入的數據字符長度可以為零。varchar 在 SQL-92 中的同義詞為 char varying 或 character varying。 

注釋 
如果沒有在數據定義或變量聲明語句中指定 n,則默認長度為 1。如果沒有使用 CAST 函數指定 n,則默認長度為 30。 

將為使用 char 或 varchar 的對象被指派數據庫的默認排序規則,除非用 COLLATE 子句另外指派了特定的排序規則。該排序規則控制用于存儲字符數據的代碼頁。 

支持多語言的站點應考慮使用 Unicode nchar 或 nvarchar 數據類型以盡量減少字符轉換問題。如果使用 char 或 varchar: 

如果希望列中的數據值大小接近一致,請使用 char。 


如果希望列中的數據值大小顯著不同,請使用 varchar。 
如果執行 CREATE TABLE 或 ALTER TABLE 時 SET ANSI_PADDING 為 OFF,則一個定義為 NULL 的 char 列將被作為 varchar 處理。 

當排序規則代碼頁使用雙字節字符時,存儲大小仍然為 n 個字節。根據字符串的不同,n 個字節的存儲大小可能小于 n 個字符。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 娇妻终于接受了3p的调教 | 精品在线观看一区 | 欧美一区精品二区三区 | 亚洲国产成人资源在线桃色 | 国产九九在线 | 午夜理论电影在线观看亚洲 | 大学第一次基本都没了 | 日本高清视频在线观看 | av毛片在线看 | 欧美日韩亚洲第一区在线 | chinese壮直男gay老年人 | 韩国美女vip内部2020 | 亚洲色图亚洲色图 | 欧亚精品一区二区三区 | 性色AV一区二区三区V视界影院 | 国产a一级 | 欧美高清在线 | 成人免费视频一区 | 男人猛进猛出女人下面视频 | 成在线人免费视频一区二区三区 | 爽好舒服把腿张小说 | 女色在线观看免费视频 | 美女一级ba大片免色 | 亚洲天堂网在线观看视频 | 办公室大战秘书呻吟 | 调教校花浣肠开菊 | 边打电话边操 | 精灵之森高清在线 | 欧产日产国产精品专区 | 香蕉久久久久久狠狠色 | 91最新高端约会系列178 | 糖心vlog视频永久破解版 | 美女大鸡鸡 | 91久久精品国产亚洲 | 成人永久免费视频 | 国产成人精品一区二三区在线观看 | 国产农村一一级特黄毛片 | 亚洲国产天堂在线观看 | 天堂精品高清1区2区3区 | 国产欧美日韩高清专区ho | 日本精品人妖shemale人妖 |