码迷,mamicode.com
首页 > 其他好文 > 详细

医生多维度条件查询函数

时间:2015-12-12 21:33:59      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

USE [DoctorInfo]
GO
/****** Object:  UserDefinedFunction [dbo].[DoctorMultiQuery]    Script Date: 12/12/2015 20:36:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[DoctorMultiQuery](
    @splitstring NVARCHAR(4000),
    @querystring NVARCHAR(4000)
)
RETURNS int
AS
BEGIN
 DECLARE @result  INT,@index1 INT, @index2 INT ,@sourcestring nvarchar(9),@valuestring nvarchar(9)
 SET @result=0
 IF(charindex(‘,‘,@splitstring)=0)
    BEGIN
        SET @sourcestring=@splitstring    
        IF(charindex(‘,‘,@querystring)=0)
            BEGIN
                IF(@splitstring=@querystring)
                    BEGIN
                        SET @result=1
                    END
            END        
        ELSE
            BEGIN
                 while(charindex(‘,‘,@querystring)<>0)
                    BEGIN
                        --第一个‘,‘之前的字符串
                        SET @index2=charindex(‘,‘,@querystring)
                        SET @valuestring=substring(@querystring,1,@index2-1)        
                        IF(@sourcestring=@valuestring)
                            BEGIN
                             SET @result=1
                             BREAK
                            END
                        ELSE
                            BEGIN
                                 --将第一个‘,‘后面的字符串重新赋给@ids
                                   set @querystring=stuff(@querystring,1,@index2,‘‘)
                                   --最后一个字符串
                                  if(charindex(‘,‘,@querystring)=0)
                                   begin
                                      IF(@sourcestring=@querystring)
                                        BEGIN
                                         SET @result=1
                                        END
                                   END
                            END
                    END
            END
    END
else
    begin
          while(charindex(‘,‘,@splitstring)<>0)
          begin
           --第一个‘,‘之前的字符串
           SET @index1=charindex(‘,‘,@splitstring)
           SET @sourcestring=substring(@splitstring,1,@index1-1)
                IF(charindex(‘,‘,@querystring)=0)
                    BEGIN
                        IF(@sourcestring=@querystring)
                            BEGIN
                                SET @result=1
                                BREAK
                            END
                    END
                ELSE
                    BEGIN
                       while(charindex(‘,‘,@querystring)<>0)
                            BEGIN
                                --第一个‘,‘之前的字符串
                                SET @index2=charindex(‘,‘,@querystring)
                                SET @valuestring=substring(@querystring,1,@index2-1)    
                                IF(@sourcestring=@valuestring)
                                    BEGIN
                                     SET @result=1
                                     BREAK
                                    END
                                ELSE
                                    BEGIN
                                         --将第一个‘,‘后面的字符串重新赋给@ids
                                           set @querystring=stuff(@querystring,1,@index2,‘‘)
                                           --最后一个字符串
                                          if(charindex(‘,‘,@querystring)=0)
                                           begin
                                              IF(@sourcestring=@querystring)
                                                BEGIN
                                                 SET @result=1
                                                END
                                           END
                                    END
                            END
                        END
                        
            IF(@result=1)
                BEGIN
                    BREAK;
                END
            ELSE
                BEGIN
                   --将第一个‘,‘后面的字符串重新赋给@ids
                   set @splitstring=stuff(@splitstring,1,@index1,‘‘)
                   
                   --最后一个字符串
                  if(charindex(‘,‘,@splitstring)=0)
                   begin
                      SET @sourcestring=@splitstring
                    IF(charindex(‘,‘,@querystring)=0)
                        BEGIN
                            IF(@sourcestring=@querystring)
                                begin
                                    SET @result=1
                                END
                        END
                    ELSE
                        begin
                            while(charindex(‘,‘,@querystring)<>0)
                            BEGIN
                                --第一个‘,‘之前的字符串
                                SET @index2=charindex(‘,‘,@querystring)
                                SET @valuestring=substring(@querystring,1,@index2-1)            
                                IF(@sourcestring=@valuestring)
                                    BEGIN
                                     SET @result=1
                                     BREAK
                                    END
                                ELSE
                                    BEGIN
                                         --将第一个‘,‘后面的字符串重新赋给@ids
                                           set @querystring=stuff(@querystring,1,@index2,‘‘)
                                           --最后一个字符串
                                          if(charindex(‘,‘,@querystring)=0)
                                           begin
                                              IF(@sourcestring=@querystring)
                                                BEGIN
                                                 SET @result=1
                                                END
                                           END
                                    END
                                END
                        END
                   END
            END
          END
END
    return @result
END

医生多维度条件查询函数

标签:

原文地址:http://www.cnblogs.com/chenjt/p/5041795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!