Tsql split
来源:互联网 发布:风险指数矩阵举例 编辑:程序博客网 时间:2024/04/20 11:56
IF OBJECT_ID('f_split') IS NOT NULLBEGIN PRINT 'Dropping function' DROP FUNCTION f_split IF @@ERROR = 0 PRINT 'Function dropped'ENDGO CREATE FUNCTION f_split(@c VARCHAR(2000),@split VARCHAR(2))RETURNS @t TABLE(id INT IDENTITY, col VARCHAR(20))ASBEGINSET @c = REPLACE(@c, CHAR(10), '')SET @c = REPLACE(@c, '', '')SET @c = REPLACE(@c, CHAR(13), '')WHILE (CHARINDEX(@split, @c) <> 0)BEGIN INSERT @t ( col ) VALUES ( SUBSTRING(@c, 1, CHARINDEX(@split, @c) -1) ) SET @c = STUFF(@c, 1, CHARINDEX(@split, @c), '')ENDINSERT @t ( col )VALUES ( LTRIM(RTRIM(@c)) )RETURNENDGO DECLARE @string NVARCHAR(MAX) = N'Custaccount,salesID,invoiceID,FROMWHOUSE,TOWHOUSE,createddate,ETADATE,SHIPIMMEDCODE,ordertype,avorderstatus,AVAPACCOUNT ';WITH cte AS ( SELECT tname, cname, MAX(TYPE) AS [type], MAX([len]) AS [len], MAX([per]) AS [per] FROM ( SELECT * FROM ax UNION SELECT * FROM drmpos ) ax GROUP BY tname, cname ) ,coltype AS ( SELECT DISTINCT tname, cname, CASE ty.system_type_id WHEN 108 THEN ty.name + '(' + CAST(cte.[len] AS NVARCHAR(5)) + '),' WHEN 231 THEN ty.name + '(' + CAST(cte.[len] AS NVARCHAR(5)) + '),' END AS typ FROM sys.types ty INNER JOIN cte ON ty.system_type_id = cte.[type] WHERE ty.name <> 'sysname' ) ,res AS ( SELECT id,col, cname, ISNULL(typ, 'nvarchar(50),') AS c , tname FROM dbo.f_split(@string, ',') AS t LEFT JOIN coltype ON t.col = cname ) SELECT id ,col,MAX(c)AS c from res GROUP BY id,col ORDER BY id
0 0
- Tsql split
- Tsql loop
- TSQL学习
- TSQL笔记
- tsql资料
- TSQL Parser
- Tsql 实例
- split
- split
- SPLIT
- Split ()
- split
- split
- Split
- split
- split
- split
- split()
- 安卓获取TextView中字符串占屏幕宽度的方法
- 《自己动手写CPU》开始预售了!!
- STM32F107的时钟设置由25M修改成8M
- Linux系统之间拷贝文件的技巧总结
- Linux u盘助手(四)
- Tsql split
- Jquery 入门
- 全自动软化水设备:工业锅炉软化水处理设备注意事项
- ExtJs4 笔记(13) Ext.menu.Menu 菜单、Ext.draw.Component 绘图、Ext.resizer.Resizer 大小变更
- 不重新编译apache安装mod_deflate模块
- http://write.blog.csdn.net/postedit
- C/C++ 中宏与预处理使用方法大全 (VC)
- 电脑越来越卡,看看有没有这些原因
- http://write.blog.csdn.net/postedit