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

 

 

關閉
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM