国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL SERVER FOR 多列字符串連接 XML PATH 及 STUFF

2024-08-31 00:54:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
SQL SERVER FOR 多列字符串連接 xml PATH 及 STUFF

本來(lái)用 Writer 寫(xiě)一篇關(guān)于一列多行合并的博客來(lái)的,結(jié)果快寫(xiě)完了時(shí)候,在一個(gè)插入代碼時(shí)候,崩了,重新打開(kāi),居然連草稿都沒(méi)有……哎,我也是無(wú)語(yǔ)了……

于是沒(méi)有心情再寫(xiě),直接發(fā)一下代碼,再順便留幾個(gè)其他博文的鏈接

1、FOR XML PATH http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

2、STUFF http://www.cnblogs.com/345563452/archive/2009/10/29/1592048.html

3、Group By http://www.cnblogs.com/rainman/archive/2013/05/01/3053703.html

4、附錄:SQL字符串函數(shù)

CREATE TABLE HobbyInfo(    id INT IDENTITY PRIMARY KEY,    name VARCHAR(10) NOT NULL,    hobby VARCHAR(20) NOT NULL)INSERT INTO HobbyInfo (name,hobby) VALUES ('LoveLong','喜歡種花')INSERT INTO HobbyInfo (name,hobby) VALUES ('LoveLong','喜歡畫(huà)畫(huà)')INSERT INTO HobbyInfo (name,hobby) VALUES ('LoveLong','癡迷人工智能')INSERT INTO HobbyInfo (name,hobby) VALUES ('LoveLong','喜歡我的龍哥')INSERT INTO HobbyInfo (name,hobby) VALUES ('Long','喜歡吃燒烤')INSERT INTO HobbyInfo (name,hobby) VALUES ('Long','喜歡看電子書(shū)')INSERT INTO HobbyInfo (name,hobby) VALUES ('Long','喜歡抽煙')INSERT INTO HobbyInfo (name,hobby) VALUES ('Long','不抽煙難受')SELECT * FROM HobbyInfoSELECT name,       hobby = STUFF((SELECT ','+hobby FROM HobbyInfo WHERE name = info.name FOR XML PATH('')),1,1,'')FROM HobbyInfo infoGROUP BY name

image

附錄:SQL字符串函數(shù)字符串函數(shù)對(duì)二進(jìn)制數(shù) 據(jù)、字符串和表達(dá)式執(zhí)行不同的運(yùn)算。此類(lèi)函數(shù)作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 數(shù)據(jù)類(lèi)型以及可以隱式轉(zhuǎn)換為 CHAR 或VARCHAR的數(shù)據(jù)類(lèi)型。可以在SELECT 語(yǔ)句的SELECT 和WHERE 子句以及表達(dá)式中使用字符串函數(shù)。常用的字符串函數(shù)有: 一、字符轉(zhuǎn)換函數(shù) 1、ASCII() 返回字符表達(dá)式 最左端字符的ASCII 碼值。在ASCII()函數(shù)中,純數(shù)字的字符串可不用‘’括起來(lái),但含其它字符的字符串必須用‘’括起來(lái)使用,否則會(huì)出錯(cuò)。

2、CHAR() 將ASCII 碼轉(zhuǎn)換為字符。如果沒(méi)有輸入 0 ~ 255 之間的ASCII 碼值,CHAR() 返回NULL 。

3、LOWER()和UPPER() LOWER()將字符串全部轉(zhuǎn)為小 寫(xiě);UPPER()將字符串全部轉(zhuǎn)為大寫(xiě)。

4、STR() 把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。 STR (<float_expression> [,length[, <decimal>]]) length 指定返回的字符串的長(zhǎng)度,decimal 指定返回的小數(shù)位數(shù)。如 果沒(méi)有指定長(zhǎng)度,缺省的length 值為10, decimal 缺省值為0。 當(dāng)length 或者decimal 為負(fù)值時(shí),返回 NULL; 當(dāng)length 小于小數(shù)點(diǎn)左邊(包括符號(hào)位)的位數(shù)時(shí),返回length 個(gè)*; 先服從length ,再取 decimal ; 當(dāng)返回的字符串位數(shù)小于length ,左邊補(bǔ)足空格。

二、去空格函數(shù) 1、LTRIM() 把 字符串頭部的空格去掉。 2、RTRIM() 把字符串尾部的空格去掉。 三、取子串函數(shù) 1、left() LEFT (<character_expression>, <integer_expression>) 返回character_expression 左起 integer_expression 個(gè)字符。 2、RIGHT() RIGHT (<character_expression>, <integer_expression>) 返回character_expression 右起 integer_expression 個(gè)字符。 3、SUBSTRING() SUBSTRING (<expression>, <starting_ position>, length) 返回從字符串左邊第starting_ position 個(gè)字符起length個(gè)字符的部分。 四、字符串 比較函數(shù) 1、CHARINDEX() 返回字符串中某 個(gè)指定的子串出現(xiàn)的開(kāi)始位置。 CHARINDEX (<’substring_expression’>, <expression>) 其中substring _expression 是所要查找的字符表達(dá)式,expression 可為字符串也可為列名表達(dá)式。如果沒(méi)有發(fā)現(xiàn) 子串,則返回0 值。 此函數(shù)不能用于TEXT 和IMAGE 數(shù)據(jù)類(lèi)型。

2、PATINDEX() 返回字符串中某個(gè)指定的子串出現(xiàn)的開(kāi)始位置。 PATINDEX (<’%substring _expression%’>, <column_ name>) 其中子串表達(dá)式前后必須有百分號(hào)“%”否則返回值為0。 與CHARINDEX 函數(shù)不同的是,PATINDEX函數(shù)的子串中可以使用通配符,且 此函數(shù)可用于CHAR、 VARCHAR 和TEXT 數(shù)據(jù)類(lèi)型。 五、字符串操作函數(shù) 1、QUOTENAME() 返回被特定字符括起來(lái)的字符串。 QUOTENAME (<’character_expression’> [, quote_ character]) 其中quote_ character 標(biāo)明括字符串所用的字符,缺省值為“[]”。

2、REPLICATE() 返回一個(gè)重復(fù) character_expression 指定次數(shù)的字符串。 REPLICATE (character_expression integer_expression) 如 果integer_expression 值為負(fù)值,則返回NULL 。 3、 REVERSE() 將指定的字符串的字符排列順序顛倒。 REVERSE (<character_expression>) 其 中character_expression 可以是字符串、常數(shù)或一個(gè)列的值。 4、 REPLACE() 返回被替換了指定子串的字符串。 REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用 string_expression3 替換在string_expression1 中的子串string_expression2。 5、SPACE() 返回一個(gè)有指定長(zhǎng)度的空白字符串。 SPACE (<integer_expression>) 如 果integer_expression 值為負(fù)值,則返回NULL 。 6、 STUFF() 用另一子串替換字符串指定位置、長(zhǎng)度的子串。 STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>) 如果起始位置為負(fù)或長(zhǎng)度值為負(fù),或者起始位置大于character_expression1 的長(zhǎng)度,則返回NULL 值。 如果 length 長(zhǎng)度大于character_expression1 中 start_ position 以右的長(zhǎng)度,則 character_expression1 只保留首字符。

六、數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù) 1、CAST() CAST (<expression> AS <data_ type>[ length ]) 2、CONVERT() CONVERT (<data_ type> [ length ], <expression> [, style]) 1)data_type為SQL Server 系統(tǒng)定義的數(shù)據(jù)類(lèi)型,用戶自定義的數(shù)據(jù)類(lèi)型不能在此使用。 2)length用于指定數(shù)據(jù)的長(zhǎng)度,缺省值為30。 3)把CHAR或 VARCHAR類(lèi)型轉(zhuǎn)換為諸如INT或SAMLLINT這樣的INTEGER類(lèi)型、結(jié)果必須是帶正號(hào)或負(fù)號(hào)的數(shù)值。 4)TEXT類(lèi)型到CHAR 或VARCHAR類(lèi)型轉(zhuǎn)換最多為8000個(gè)字符,即CHAR或VARCHAR數(shù)據(jù)類(lèi)型是最大長(zhǎng)度。 5)IMAGE類(lèi)型存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換到 BINARY或VARBINARY類(lèi)型,最多為8000個(gè)字符。 6)把整數(shù)值轉(zhuǎn)換為MONEY或SMALLMONEY類(lèi)型,按定義的國(guó)家的貨幣 單位來(lái)處理,如人民幣、美元、英鎊等。 7)BIT類(lèi)型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以BIT類(lèi)型存儲(chǔ)。 8)試圖轉(zhuǎn)換到不同長(zhǎng)度的數(shù)據(jù) 類(lèi)型,會(huì)截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識(shí)發(fā)生了這種截?cái)唷? 9)用CONVERT() 函數(shù)的style 選項(xiàng)能以不同的格式顯示日期 和時(shí)間。style 是將DATATIME 和SMALLDATETIME 數(shù)據(jù)轉(zhuǎn)換為字符串時(shí)所選用的由SQL Server 系統(tǒng)提供的轉(zhuǎn)換樣式編 號(hào),不同的樣式編號(hào)有不同的輸出格式。

七、日期函數(shù) 1、 day(date_expression) 返回date_expression中的日期值 2、month(date_expression) 返回date_expression中的月 份值 3、year(date_expression) 返回 date_expression中的年份值 4、DATEADD() DATEADD (<datepart>, <number>, <date>) 返回指定日期date 加上指定的額外日期間隔number 產(chǎn)生的新日期。參數(shù)“datepart” 取值如下:

5、DATEDIFF() DATEDIFF (<datepart>, <date1>, <date2>) 返回兩個(gè)指定日期在datepart 方面的不同之處,即date2 超過(guò)date1的差距值,其結(jié)果值是一個(gè)帶有正負(fù)號(hào)的整數(shù)值。 6、DATENAME() DATENAME (<datepart>, <date>) 以字符串的形式返回日期的指定部分此部分。由datepart 來(lái)指定。 7、 DATEPART() DATEPART (<datepart>, <date>) 以整數(shù)值 的形式返回日期的指定部分。此部分由datepart 來(lái)指定。 DATEPART (dd, date) 等同于DAY (date) DATEPART (mm, date) 等 同于MONTH (date) DATEPART (yy, date) 等同于YEAR (date) 8、GETDATE() 以DATETIME 的缺省格式返回系統(tǒng)當(dāng)前的日期和時(shí)間

element
Font
font-family
font-size
font-style
font-variant
font-weight
letter-spacing
line-he
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新巴尔虎左旗| 太湖县| 米泉市| 龙川县| 临沂市| 邵阳县| 方城县| 芒康县| 雅安市| 新巴尔虎左旗| 鲁山县| 海林市| 左权县| 南雄市| 临高县| 黑水县| 米林县| 阜阳市| 怀宁县| 科技| 子洲县| 凤冈县| 汝州市| 遂溪县| 榆社县| 年辖:市辖区| 哈密市| 东兰县| 阿拉善盟| 五家渠市| 玉林市| 西乌珠穆沁旗| 拉萨市| 西盟| 抚顺市| 天柱县| 三门县| 黄大仙区| 宁陕县| 焦作市| 牙克石市|