比如我有一个字符变量host="第一仓库,第三仓库,第七仓库"; 它是传到存储过程的@host里的 
有一个仓库的字段StoreHou,我想通过WHERE  取出这三个仓库的记录,请问WHERE怎么写呀?

解决方案 »

  1.   

    where StoreHou="第一仓库" or StoreHou="第三仓库" or StoreHou="第七仓库"
      

  2.   

    不行啊,host是变量,不确定的。
      

  3.   

    仅供参考ALTER    function GetNntpParentPostID(@ParentMessageID NVARCHAR(3000))
    RETURNS INT
    AS
    BEGIN
    --输入:父MESSAGEID,就是那一长串以空格分割的字符  <a> <b> <c>
    --返回:在论坛中的父PostID
    IF @ParentMessageID IS NULL OR @ParentMessageID = ''
    RETURN 0
    --取得新添加贴子在Toasp_Posts中的父ID
    DECLARE @a AS NvarChar(3000)
    DECLARE @i AS Int
    DECLARE @t AS Int
    DECLARE @ParentID AS NvarChar(100)
    DECLARE @ParentPostID as int
    SET @ParentPostID = 0
    SET @a = @ParentMessageID
    SET @a = ' '+ltrim((rtrim(@a)))
    SET @i = len(rtrim(@a))
    SET @t = @i+1
    WHILE @i>0 
    BEGIN
    IF ltrim(substring(@a,@i,1))='' or @i=1
    BEGIN
    IF @i<>@t-1  --here avoid double or more space
    BEGIN
    SET @ParentID= substring(@a,@i+1,@t-@i)
    IF EXISTS(SELECT PostID FROM Toasp_NntpPosts WHERE MessageID = @ParentID)
    BEGIN
    SELECT @ParentPostID = PostID FROM Toasp_NntpPosts WHERE MessageID=@ParentID
    BREAK
    END
    END
    SET @t=@i
    END
    SET @i=@i-1
    END
    RETURN @ParentPostID
    END
      

  4.   

    拆分沒有必要,你可以用charindex或者like來做的。Where CharIndex(StoreHou,N'第一仓库,第三仓库,第七仓库')>0或者Where N'第一仓库,第三仓库,第七仓库'  Like '%'+StoreHou+'%'