解析多参数传递问题

  • 概述:

    当我们获取传递多个参数的时候,通常都是得到一串字符传递的文本格式。
    如:'3115,6904,3226,3119,1173';但是这样的格式在SQL解析的时候仅仅是一个字符串,而非多个字段参数。这个时候需要我们用指定的函数去解析他们。

  • 代码:

     1 CREATE FUNCTION [dbo].[Fn_ParsingMorePar]
     2 (    
     3     @Par VARCHAR(MAX)    
     4 )
     5 
     6 RETURNS @TABLE TABLE(Code VARCHAR(100))
     7 AS
     8 BEGIN
     9 
    10     DECLARE @XML XML 
    11     SELECT @XML =
    12     '
    13     <Data>
    14         <Item>
    15             <Code>' + REPLACE(@Par,',','</Code></Item><Item><Code>') + '</Code>        
    16         </Item>    
    17     </Data>
    18     '
    19     INSERT @TABLE
    20     SELECT DISTINCT T.Col.query('Code').value('.[1]', 'VARCHAR(100)') AS Code
    21     FROM @XML.nodes('//Data/Item') AS T(Col)
    22     RETURN 
    23 END
    View Code
  • 执行结果:

    1 SELECT * FROM dbo.Fn_ParsingMorePar('3115,6904,3226,3119,1173')
    View Code

     

  • 解析的XML代码

     1 <Data>
     2     <Item>
     3         <Code>3115</Code>
     4     </Item>
     5     <Item>
     6         <Code>6904</Code>
     7     </Item>
     8     <Item>
     9         <Code>3226</Code>
    10         </Item>
    11     <Item>
    12         <Code>3119</Code>
    13     </Item>
    14     <Item>
    15         <Code>1173</Code>
    16     </Item>
    17 </Data>
    18     
    View Code

     

posted @ 2016-03-30 11:34  C-华仔  阅读(341)  评论(0编辑  收藏  举报