日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

講解SQL Server2005數(shù)據(jù)項(xiàng)的分拆與合并

瀏覽:20日期:2023-11-05 16:34:24
SQL Server2005數(shù)據(jù)項(xiàng)的分拆與合并:

參考示例如下:

-- =============================================

-- Author: LzmTW

-- Create date: 20080102

-- Description: 連接子字符串

-- @TableName: 數(shù)據(jù)所在的表的名稱(chēng)

-- @KeyColName: 連接子字符串所依據(jù)的鍵值所在的列

-- @JoinColName: 包含要連接的子字符串所在的列

-- @Quote: 分隔子字符串

-- @Where: 選擇條件,不包含Where

-- =============================================

CREATE PROCEDURE [Helper].[JoinValue]

@TableName nvarchar(100)

,@KeyColName nvarchar(20)

,@JoinColName nvarchar(20)

,@Quote nvarchar(10) = N','

,@Where nvarchar(max) = NULL

AS

BEGIN

SET NOCOUNT ON;

DECLARE

@SQL nvarchar(max)

IF @Where IS NULL

SET @SQL = N'

SELECT *

FROM

(

SELECT DISTINCT KeyCol = @KeyColName

FROM @TableName

)a

'

ELSE

SET @SQL = N'

SELECT *

FROM

(

SELECT DISTINCT KeyCol = @KeyColName

FROM @TableName

WHERE @Where

)a

'

SET @SQL = @SQL + N'

OUTER APPLY (

SELECT NewValues =

STUFF(

REPLACE(

REPLACE(

REPLACE(

(

SELECT JoinCol = @JoinColName

FROM @TableName b

WHERE @KeyColName = a.KeyCol

FOR XML RAW

)

, N'''', N'''')

, N'', N'''/>'', N'''')

, 1, LEN(N''@Quote''), N'''')

) c'

SET @SQL = REPLACE(@SQL, N'@TableName', @TableName)

SET @SQL = REPLACE(@SQL, N'@KeyColName', @KeyColName)

SET @SQL = REPLACE(@SQL, N'@JoinColName', @JoinColName)

SET @SQL = REPLACE(@SQL, N'@Quote', @Quote)

IF NOT @Where IS NULL

SET @SQL = REPLACE(@SQL, N'@Where', @Where)

--PRINT @SQL

EXEC sp_executesql @SQL

END

GO

-- =============================================

-- Author: LzmTW

-- Create date: 20080102

-- Description: 分拆字符串

-- @TableName: 數(shù)據(jù)所在的表的名稱(chēng)

-- @KeyColName: 分拆為子字符串所依據(jù)的鍵值所在的列

-- @SpliteColName: 包含要分拆的字符串所在的列

-- @Quote: 分隔子字符串

-- @Where: 選擇條件,不包含Where

-- =============================================

CREATE PROCEDURE [Helper].[SpliteValues]

@TableName nvarchar(100)

,@KeyColName nvarchar(20)

,@SpliteColName nvarchar(20)

,@Quote nvarchar(10) = N','

,@Where nvarchar(max) = NULL

AS

BEGIN

SET NOCOUNT ON;

DECLARE

@SQL nvarchar(max)

IF @Where IS NULL

SET @SQL = N'

SELECT

KeyCol, NewValue

FROM

(

SELECT

KeyCol = @KeyColName

,SpliteCol = CONVERT(xml, N'''' + REPLACE(@SpliteColName, N''@Quote'', N'''') + N'''')

FROM @TableName

) a

'

ELSE

SET @SQL = N'

SELECT

KeyCol, NewValue

FROM

(

SELECT

KeyCol = @KeyColName

,SpliteCol = CONVERT(xml, N'''' + REPLACE(@SpliteColName, N''@Quote'', N'''') + N'''')

FROM @TableName

WHERE @Where

) a

'

SET @SQL = @SQL + N'

OUTER APPLY

(

SELECT NewValue = N.v.value(N''.'', ''nvarchar(max)'')

FROM SpliteCol.nodes(N''/root/v'') N(v)

) b'

SET @SQL = REPLACE(@SQL, N'@TableName', @TableName)

SET @SQL = REPLACE(@SQL, N'@KeyColName', @KeyColName)

SET @SQL = REPLACE(@SQL, N'@SpliteColName', @SpliteColName)

SET @SQL = REPLACE(@SQL, N'@Quote', @Quote)

IF NOT @Where IS NULL

SET @SQL = REPLACE(@SQL, N'@Where', @Where)

EXEC sp_executesql @Sql

END

示例:

SET NOCOUNT ON

CREATE TABLE ##Table([keyCol] varchar(3), [NewValues] varchar(max))

--原數(shù)據(jù)

SELECT

[title_id]

,[title]

FROM [pubs].[dbo].[titles]

WHERE [type] LIKE 'p%'

--以title_id的前兩個(gè)字符為參考鍵值,合并title到一個(gè)臨時(shí)表中

INSERT INTO ##Table

EXECUTE [ChineseHoliday].[Helper].[JoinValue]

@TableName = '[pubs].[dbo].[titles]'

,@KeyColName = 'LEFT([title_id], 2)'

,@JoinColName = '''《''+[title] + ''》'''

,@Quote = ','

,@Where = '[type] LIKE ''p%'''

--顯示

SELECT * FROM ##Table

--對(duì)臨時(shí)表NewValues的值進(jìn)行分拆

EXECUTE [ChineseHoliday].[Helper].[SpliteValues]

@TableName = '##Table'

,@KeyColName = '[keyCol]'

,@SpliteColName = '[NewValues]'

,@Quote = ','

--刪除臨時(shí)表

DROP TABLE ##Table

結(jié)果:

title_id title

-------- --------------------------------------------------------------------------------

PC1035 But Is It User Friendly?

PC8888 Secrets of Silicon Valley

PC9999 Net Etiquette

PS1372 Computer Phobic AND Non-Phobic Individuals: Behavior Variations

PS2091 Is Anger the Enemy?

PS2106 Life Without Fear

PS3333 Prolonged Data Deprivation: Four Case Studies

PS7777 Emotional Security: A New Algorithm

keyCol NewValues

------ ------------------------------------------

PC 《But Is It User Friendly?》,《Secrets of Silicon Valley》,《Net Etiquette》

PS 《Computer Phobic AND Non-Phobic Individuals: Behavior Variations》,《Is Anger the Enemy?》,《Life Without Fear》,《Prolonged Data Deprivation: Four Case Studies》,《Emotional Security: A New Algorithm》

KeyCol NewValue

------ ------------------------------------------

PC 《But Is It User Friendly?》

PC 《Secrets of Silicon Valley》

PC 《Net Etiquette》

PS 《Computer Phobic AND Non-Phobic Individuals: Behavior Variations》

PS 《Is Anger the Enemy?》

PS 《Life Without Fear》

PS 《Prolonged Data Deprivation: Four Case Studies》

PS 《Emotional Security: A New Algorithm》

繼續(xù):字符串的分拆

-- =============================================

-- Author: LzmTW

-- Create date: 20080108

-- Description: 拆分字符串

-- =============================================

CREATE FUNCTION [Func].[Splite]

(

@Input nvarchar(max)

,@Quote nvarchar(max)

)

RETURNS

@Table TABLE

(

[ID] int identity(1,1) PRIMARY KEY

,[Value] nvarchar(max)

)

AS

BEGIN

INSERT @Table

SELECT

[Value] = NewValue

FROM

(

SELECT

SpliteCol = CONVERT(

xml

,N'' + REPLACE(

@Input

,@Quote

,N'') + N'')

) a

OUTER APPLY

(

SELECT NewValue = N.v.value(N'.', 'nvarchar(max)')

FROM SpliteCol.nodes(N'/root/v') N(v)

) b

RETURN

END

示例:

定義新行,

CREATE FUNCTION [Const].[NewLine]

(

)

RETURNS nchar(2)

AS

BEGIN

DECLARE @Result nchar(2)

SELECT @Result = char(13) + char(10)

RETURN @Result

END

DECLARE

@Input nvarchar(max)

,@Quote nvarchar(max)

SET @Input = N'90

10

20

30

40

50

60'

SET @Quote = [Const].NewLine()

SELECT * FROM [Func].[Splite] (@Input, @Quote)

結(jié)果

ID Value

----------- ------

1 90

2 10

3 20

4 30

5 40

6 50

7 60

(7 行受影響)

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲午夜久久久久久尤物| 日产精品一区| 91av亚洲| 国产一区调教| 国产午夜精品一区在线观看| 欧美日韩免费观看一区=区三区| 日韩中文欧美| 久久久影院免费| 麻豆精品蜜桃| 亚洲一区二区三区高清不卡| 亚洲免费一区三区| 91亚洲精品在看在线观看高清| 国产人成精品一区二区三| 国产精品乱战久久久| 九九九精品视频| 亚洲啊v在线| 91精品蜜臀一区二区三区在线| 91精品婷婷色在线观看| 视频一区视频二区中文字幕| 亚洲a级精品| 欧美日韩午夜电影网| 欧美a在线观看| 欧美影院三区| 911精品国产| 久久久夜精品| 日日夜夜免费精品视频| 福利欧美精品在线| 国产婷婷精品| 成人污污视频| 亚洲精品进入| 日韩高清成人| 日韩区欧美区| 久久国产毛片| 国产欧美欧美| 午夜久久tv| 国产精品久久久一区二区| 欧美丰满日韩| 中文字幕亚洲精品乱码| 四虎国产精品免费观看| 日本伊人久久| 六月婷婷一区| 日韩美女一区二区三区在线观看| 中文字幕亚洲在线观看| 久久毛片亚洲| 国产麻豆精品久久| 男人的天堂久久精品| 91精品国产自产在线观看永久∴| 国产精品欧美大片| 免费成人性网站| 蜜桃精品在线| 国产精品视频一区二区三区四蜜臂| 红桃视频国产一区| 吉吉日韩欧美| 国产v日韩v欧美v| 国产精品一区二区中文字幕| 免费不卡在线视频| 国产精品外国| 色综合www| 成人精品国产亚洲| 日韩精品高清不卡| 视频一区视频二区中文| 久久三级视频| 久久久久久夜| 精品亚洲免a| 精品99久久| 日韩欧美中文在线观看| 亚洲午夜一级| 日本久久成人网| 日韩欧美1区| 精品国产亚洲一区二区在线观看| 日韩国产欧美在线播放| 欧美高清一区| 激情综合网站| 99久久婷婷| 午夜久久99| 久久成人一区| 蜜桃一区二区三区在线| 亚洲一区有码| 欧美日韩中出| 久久精品三级| 国产suv精品一区二区四区视频| 欧美久久久网站| 欧美国产另类| 成人黄色av| 免费视频亚洲| 免费看日韩精品| 国产精品免费不| 日韩激情一区| 男女激情视频一区| 久久国产生活片100| 麻豆久久久久久| 久久精品123| 日韩精品1区2区3区| 国产在线视频欧美一区| 久久久久网站| 丝袜国产日韩另类美女| 日韩三级一区| 日韩成人三级| 日韩三级久久| 在线观看精品| 日韩精品欧美大片| 国产精品yjizz视频网| 欧美日韩视频| 免费精品一区| 午夜在线精品偷拍| 国产精品最新| av不卡在线看| 韩日一区二区| 亚洲精品少妇| 日韩在线看片| 国产欧美综合一区二区三区| 亚洲福利免费| 精品视频一区二区三区四区五区 | 国产精品一区三区在线观看| 久久婷婷一区| 精品国产亚洲日本| 日韩三级视频| 黄色成人在线网址| 国产精品久久久久久久久久10秀 | 国产亚洲欧美日韩在线观看一区二区 | 日韩欧美一区二区三区在线视频| 亚洲视频国产精品| 欧美日韩精品免费观看视欧美高清免费大片| 美女尤物久久精品| 精品国产一区二区三区av片| 免费在线成人网| 在线成人动漫av| 国产 日韩 欧美 综合 一区| 国产欧美另类| 欧美视频二区| 五月激激激综合网色播| 蜜臀av一区二区三区| 免费日韩av片| 狠狠干综合网| 99在线精品视频在线观看| 高清一区二区三区av| 六月丁香综合在线视频| 国产精品分类| 国产精品片aa在线观看| 亚洲精品中文字幕乱码| 99热精品久久| 久久精品亚洲欧美日韩精品中文字幕| 另类小说一区二区三区| 精品视频高潮| 国产精品亚洲一区二区三区在线观看| 国产精品国产一区| 欧美日韩国产观看视频| 中文在线а√在线8| 久久精品高清| 噜噜噜躁狠狠躁狠狠精品视频| 国产一级一区二区| 亚洲有吗中文字幕| 国产欧美另类| 国产福利91精品一区二区| 久久中文字幕导航| 国产探花一区| 成人国产精品一区二区网站| 国产综合欧美| 亚洲婷婷丁香| 国产精品久久久久久久久久白浆 | 亚洲一区二区小说| 久久99影视| 久久婷婷丁香| 日韩高清在线一区| 久久uomeier| 亚洲一区二区免费看| 国产欧美日韩在线一区二区 | 蜜桃久久久久久| 精品久久久久中文字幕小说| 日韩在线短视频| 欧美中文高清| 欧美肉体xxxx裸体137大胆| 亚洲一区av| 蜜桃精品在线| 国产欧美一区| 欧美女激情福利| 日韩综合在线| 免费欧美一区| 精品视频97| 日韩成人在线看| 视频福利一区| 久久国际精品| 亚洲天堂久久| 欧美精品99| 四虎成人av| 日韩精品1区2区3区| 色偷偷偷在线视频播放| 午夜亚洲福利| jiujiure精品视频播放| 国产精品主播在线观看| 99久久激情| 国精品产品一区| 一区二区自拍| 国产va免费精品观看精品视频| 久久久久蜜桃| 国产一区二区三区亚洲综合| 亚洲图片久久| 中国女人久久久| 亚洲不卡av不卡一区二区| 日本成人手机在线|