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

您的位置:首頁技術文章
文章詳情頁

講解SQL Server2005數據項的分拆與合并

瀏覽:24日期:2023-11-05 16:34:24
SQL Server2005數據項的分拆與合并:

參考示例如下:

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

-- Author: LzmTW

-- Create date: 20080102

-- Description: 連接子字符串

-- @TableName: 數據所在的表的名稱

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

-- @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: 數據所在的表的名稱

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

-- @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))

--原數據

SELECT

[title_id]

,[title]

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

WHERE [type] LIKE 'p%'

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

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

--對臨時表NewValues的值進行分拆

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

@TableName = '##Table'

,@KeyColName = '[keyCol]'

,@SpliteColName = '[NewValues]'

,@Quote = ','

--刪除臨時表

DROP TABLE ##Table

結果:

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》

繼續:字符串的分拆

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

-- 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)

結果

ID Value

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

1 90

2 10

3 20

4 30

5 40

6 50

7 60

(7 行受影響)

標簽: Sql Server 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩99| 日本不卡高清| 久久中文字幕导航| 久久99蜜桃| 国产suv精品一区二区四区视频| 你懂的国产精品| 精品国产美女a久久9999| 久久一区精品| 日韩免费在线| 久久五月天小说| 亚洲精品一二三区区别| 亚洲一区二区三区免费在线观看 | 久久精品国产亚洲一区二区三区| 国产精品视频一区二区三区综合| 麻豆一区二区在线| а√在线中文在线新版| 久久久一二三| 丝袜美腿亚洲一区| 日本在线视频一区二区| 美女视频网站久久| 中文在线资源| 亚洲一区二区毛片| 国产精品资源| 国产精品久久久久av电视剧| 欧美日韩国产免费观看视频| 在线一区二区三区视频| 日本午夜精品| 成人黄色av| 一区福利视频| 国产欧美自拍| 日本精品在线中文字幕| 石原莉奈在线亚洲二区| 国产劲爆久久| 亚洲一级高清| 91精品日本| 伊人久久在线| 蜜桃一区二区三区在线观看| 国产精品任我爽爆在线播放| 久久久成人网| 日本成人中文字幕| 午夜av不卡| 久久亚洲精品伦理| 国产激情久久| 亚洲深爱激情| 精品色999| 视频一区国产视频| 国产成人免费精品| 免费视频久久| 国产aa精品| 美女久久网站| 电影91久久久| 一区二区高清| 亚洲三级欧美| 91成人福利| 美女久久久久| 久久女人天堂| 久久大逼视频| 成人高清一区| 日韩av午夜在线观看| 99久久亚洲精品蜜臀| 国产欧美丝祙| 免费观看久久久4p| 日韩在线短视频| 国产另类在线| 免费久久99精品国产自在现线| 国产精品国产一区| 日本精品国产| 亚洲综合国产| 亚洲成av在线| 精品一区二区三区中文字幕| 亚洲最新av| 999久久久91| 久久成人av| 亚洲91在线| 亚洲经典在线| 日韩在线二区| 久久精品国产99| 日本午夜精品久久久久| 亚洲欧美日韩视频二区| 欧美成人基地| 成人在线视频免费| 国产精品久久久久77777丨| 麻豆91精品| 婷婷亚洲综合| 日韩在线观看| 国精品产品一区| 国产剧情在线观看一区| 巨乳诱惑日韩免费av| 久久高清精品| 成人福利av| 精品国产91| 国产精品magnet| 久久国产欧美日韩精品| 亚洲久久在线| 六月丁香综合| 先锋影音国产一区| 一区二区小说| 欧美日韩精品免费观看视欧美高清免费大片| 国产日韩欧美中文在线| 日韩激情精品| 欧美日韩中出| 欧美视频久久| 日韩av一区二区在线影视| 一区二区电影| 亚洲欧美久久精品| 亚洲三级网址| 日韩一区精品| 日韩欧美中文字幕电影| 日韩精品国产欧美| 日本91福利区| 97久久中文字幕| 日韩欧美在线精品| 91麻豆精品| 国产精品一区二区三区av| 国产午夜精品一区在线观看| 免费视频一区二区| 性欧美长视频| 老司机久久99久久精品播放免费| 日韩一级不卡| 久久精品国产久精国产| 国产韩日影视精品| 午夜久久av| 免费欧美一区| 欧美日韩网址| 青青久久av| 99国产精品一区二区| 亚洲精品日本| 亚洲欧美成人综合| 国产精品大片免费观看| 中文欧美日韩| 丝瓜av网站精品一区二区| 国产精品免费看| 亚洲一区二区三区四区电影| 国产精品视频一区二区三区 | 中文字幕av一区二区三区人| 欧美日韩视频免费观看| 中文一区在线| 美女性感视频久久| 青青青免费在线视频| 日韩欧美精品一区二区综合视频| 91成人精品| 蜜桃视频免费观看一区| 91精品国产自产观看在线| 国产一区二区三区四区五区| 免费福利视频一区二区三区| 欧美日韩一视频区二区| 亚洲综合电影| 国产精品啊v在线| 91久久视频| 日韩在线欧美| 日韩欧美中文字幕在线视频| 欧美精品自拍| 久久婷婷丁香| 欧美激情另类| 国产视频一区三区| 九九色在线视频| 999久久久亚洲| 日韩中文欧美| 欧美91在线|欧美| 亚洲欧美在线专区| 蜜臀久久99精品久久久久久9| 国产毛片一区| 98精品久久久久久久| 欧美一区精品| 日韩午夜视频在线| 国产日韩欧美一区二区三区 | 91高清一区| 在线精品福利| 久久久久久久久成人| 日韩成人高清| 蜜臀91精品一区二区三区| 免费一级欧美片在线观看网站| 久久久久久久久99精品大| 亚洲专区视频| av最新在线| 久热re这里精品视频在线6| 麻豆91小视频| 视频一区中文| 国产精品久久久久av蜜臀| 欧美午夜精彩| 欧美在线观看天堂一区二区三区| 日本高清不卡一区二区三区视频| 丝袜亚洲精品中文字幕一区| 麻豆精品蜜桃视频网站| 野花国产精品入口| 国产九一精品| 亚洲不卡av不卡一区二区| 九色porny丨国产首页在线| 美女视频免费精品| 一区二区三区四区日韩| 亚洲一区二区网站| 在线一区免费观看| 综合激情在线| 欧美亚洲精品在线| 极品av在线| 亚洲精品123区| 久久成人av| 国产一精品一av一免费爽爽| 视频在线在亚洲| 四虎成人av|