zoukankan      html  css  js  c++  java
  • 使用Dapper参数化查询(三) IN 查询

    表值函数返回 table。

    对于内嵌表值函数,没有函数主体;

    表是单个 SELECT 语句的结果集。对于多语句表值函数,在 BEGIN...END 块中定义的函数主体包含 TRANSACT-SQL 语句,这些语句可生成行并将行插入将返回的表中。

     
    先创建一个表值函数
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    in 参数化查询
    -- =============================================
    CREATE FUNCTION [dbo].[Split]
    (
        @SplitString varchar(max), 
        @Separator char(1)=',' 
    )
    RETURNS @SplitStringsTable TABLE 
    ( 
     [value] varchar(max) 
    ) 
    AS 
    BEGIN 
      DECLARE @CurrentIndex int; 
      DECLARE @NextIndex int; 
      DECLARE @ReturnText nvarchar(max); 
      SELECT @CurrentIndex=1; 
      WHILE(@CurrentIndex<=len(@SplitString)) 
      BEGIN 
        SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex); 
        IF(@NextIndex=0 OR @NextIndex IS NULL) 
        SELECT @NextIndex=len(@SplitString)+1; 
        SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex); 
        INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText); 
        SELECT @CurrentIndex=@NextIndex+1; 
      END 
      RETURN; 
    END 
    
    GO

    然后调用它就可以了

    select * from jn_user where userid in (SELECT value FROM Split(@idsrt))
    关闭
     
  • 相关阅读:
    面试题 16.07. 最大数值
    461. 汉明距离
    1290. 二进制链表转整数
    1486. 数组异或操作
    1480. 一维数组的动态和
    面试题 17.04. 消失的数字
    626. 换座位
    125. 验证回文串
    530. 二叉搜索树的最小绝对差
    ASP.NET页面之间传递值的几种方式
  • 原文地址:https://www.cnblogs.com/shuaimeng/p/14281745.html
Copyright © 2011-2022 走看看