WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' + (SELECT @fidlist AS [fid]) + ',') > 0)
这里面select指的什么意思,没有FROM不会出错吗?

解决方案 »

  1.   

    如果@fidlist 是字符串那等价于:
    WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' + @fidlist + ',') > 0) 
      

  2.   


    SELECT @fidlist AS [fid]--把变量发赋值
      

  3.   

    --实际上(SELECT @fidlist AS [fid])就是返回一个值,不用from。
    --这样应该也可以。
    WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' + @fidlist  + ',') > 0) 
      

  4.   


    SELECT @fidlist AS [fid]--变量赋值,有时候相当于set
      

  5.   


    等于WHERE (CHARINDEX(',' + RTRIM([fid]) + ',', ',' + @fidlist + ',') > 0) 
    --这个也没有from.declare @dt as datetime
    set @dt = getdate()select @dt/*
                                                           
    ------------------------------------------------------ 
    2009-03-30 13:11:59.467(所影响的行数为 1 行)
    */