多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > SQL SERVER 2008使用CTE轉換string到Table

SQL SERVER 2008使用CTE轉換string到Table

來源:程序員人生   發布時間:2014-01-14 11:46:51 閱讀次數:3618次

多少次我們會面臨這樣的問題:我們需要把一組ID的Array做為參數傳給存儲過程.在存儲過程中能轉換成Table后我們會更喜歡使用這種數據.

這里我們使用CTE來實現,例如我們有這樣的字符串:'1,2,4,8',想轉成這個table:

4295

T-sql:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Amit Gaur
-- Create date: July 25th 2008
-- Description: Convert a string to a table
-- =============================================
CREATE FUNCTION [dbo].[strToTable]
(
@array varchar(max),
@del char(1)
)
RETURNS
@listTable TABLE
(
item int
)
AS
BEGIN

WITH rep (item,list) AS
(
SELECT SUBSTRING(@array,1,CHARINDEX(@del,@array,1) - 1) as item,
SUBSTRING(@array,CHARINDEX(@del,@array,1) + 1, LEN(@array)) + @del list

UNION ALL

SELECT SUBSTRING(list,1,CHARINDEX(@del,list,1) - 1) as item,
SUBSTRING(list,CHARINDEX(@del,list,1) + 1, LEN(list)) list
FROM rep
WHERE LEN(rep.list) > 0
)
INSERT INTO @listTable
SELECT item FROM rep

RETURN
END

GO

如何調用呢:

1: DECLARE @array VARCHAR(max)
2: SET @array = '1,2,4,8'
3: SELECT item FROM strToTable(@array,',')

完了,實際以前你可以用function遞歸來實現,這里我們使用CTE.希望這篇POST對您有幫助.

轉自:http://wintersun.cnblogs.com

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一二三四视频免费观看在线看1 | 成人午夜视频在线 | 网友自拍区一区二区三区 | 久久一级视频 | 2022精品福利在线小视频 | 欧美日本黄色 | 日本一区二区三区不卡在线看 | 美国一级毛片完整高清 | 亚洲第一成人在线 | 亚洲午夜国产精品无卡 | 久久久国产一区二区三区 | 中文字幕在线看视频一区二区三区 | 欧美亚洲国产精品久久蜜芽 | 免费国产叼嘿秀视频 | 性国产videofree另类 | 国产极品嫩模在线观看91精品 | 亚洲性色视频 | 欧美色综合天天综合高清网 | 欧美一级欧美一级高清 | 国产福利精品一区二区 | 在线精品国产成人综合第一页 | 欧美我不卡 | 波多野结衣一区二区三区 | 日本成人一区二区三区 | 波多野结衣手机视频一区 | free性欧美高清vide0s | xx综合网| 黄色a一级 | 羞羞影视 | 亚洲日韩色图 | 色最快国产 | 欧美一级视频在线观看欧美 | 亚洲欧洲一区二区 | 国产一区二区亚洲精品天堂 | 国产一区亚洲二区三区毛片 | 欧美成免费 | 久久精品视频6 | 三级黄在线播放 | 中文字幕无限乱码不卡2021 | 久久精品国产亚洲麻豆 | 久久久青草青青国产亚洲免观 |