表:T1     字段:A,B,C
(竖线是累加出来的)
A='1 | 2 | 3 | 4 | 5 |'   B='1'    C='a | b | c | d | e |'
A='1 | 2 | 3 | 4 | 5 |'   B='3'    C='a | b | c | d | e |'
A='1 | 2 | 3 | 4 | 5 |'   B='6'    C='a | b | c | d | e |'
要实现的功能:
1。如果字段A中有B的内容则返回'1'否则返回'0'
2。要从上面的A竖线中反映出是第几次累加的结果然后再从C中取出与其相对应次数的值

解决方案 »

  1.   

    1.  select iif(instr(A,B)>0,1,0) as C from T1
    2.  没看懂。
      

  2.   

    你的代码返回如下:
    服务器: 消息 195,级别 15,状态 10,行 1
    'instr' 不是可以识别的 函数名。
      

  3.   

    他想要一个类似于VB中SPLIT函数的功能

    第一个省名列表:|北京|福建|浙江|江苏|内蒙古|四川|黑龙江|
    找出第二个省会列表:|北京市|福州|杭州|南京|呼和浩特|成都|沈阳|
    输入参数:福建
    找出对应的省会:福州
      

  4.   

    select A,B,C,1
    from tblname
    where A like '%' + B + '%' 
    union 
    select A,B,C,0
    from tblname
    where not(A like '%' + B + '%' )select right(left(C,cast(left(right(A,2),1) as int)),1)
    from tblname/*
    以上语句可以完成要求,虽然很短,但是是很费时的操作,
    如果记录很多(几十万条),A,C字段过宽,都会查询变的很慢。
    */
      

  5.   

    你们好像都有点晕了. 请听我说:
    我想要做的事情是:
    有一条信息要发给(A,B,C,...,N)N个人.该条信息要求每个人都要《确认》。在确认时登记时间。
    有字段 D1和D2 ,D1登记确认的用户, D2登记确认的时间.为了在不增加字段的情况下实现对于不同的用户显示不同的信息.例如:<如果有登记表示该用户已确认>
    D1='A | B | C | D '       D2='02:30 | 03:15 | 04:20 | 05:10'用户登陆后,则显示
      用户   确认   时间          用户   确认   时间         用户   确认   时间
    -----------------------    -----------------------  -----------------------
       A     √    02:30           C     √   04:20         E      空     空
      

  6.   

    LuBingLin(为什么)好像都有点晕了. 请听我说:
    你想要做的事情是:
    有一个考题要发给(A,B,C,...,N)N个人.该条考题要求每个人都要《回答》。回答对应的省会。
    有字段 D1和D2 ,D1登记发给各个的省名, D2登记他们回答的省会.为了在不增加字段的情况下实现对于不同的试题显示不同的答案.例如:<如果有登记表示该用户已回答>
    D1='|北京|福建|浙江|江苏|内蒙古|四川|黑龙江|'       D2=':|北京市|福州|杭州|南京|呼和浩特|成都|哈尔滨|'用户回答后,则显示
      问题   确认   省会          问题   确认   省会         问题   确认   省会
    -----------------------    -----------------------  -----------------------
    北京     √    北京           福建     √   福州         广东     空     空
      

  7.   

    不是人家不会,只是因为这个自定函数只使用了简单的charindex,left,replace,len,substring,substring这些函数,没有特别的技术难度下面我列出一种写法,大家有兴趣的提提意见
    create function Instr1
    (@s  varchar(50),
     @s2 varchar(50),
     @y  varchar(50))
    returns varchar(50)
    as
    begin
      declare @i int
      declare @s0 varchar(50)
      declare @s1 varchar(50)
      declare @j int
      set @i=charindex(@y+'|',@s)
      set @s0=left(@s,@i+len(@y)-1)
      set @s1=replace(@s0,'|','')
      set @j=len(@s0)-len(@s1)  set @i=0
      while @j>0
      begin
        set @i=@i+1
        if substring(@s2,@i,1)='|' set @j=@j-1
      end
      set @j=charindex('|',@s2,@i+1)
      return substring(@s2,@i+1,@j-@i-1)
    end在查询分析器中执行
    print dbo.instr1('|北京|福建|浙江|江苏|内蒙古|四川|黑龙江|','|北京市|福州|杭州|南京|呼和浩特|成都|哈尔滨|','|江苏')