如果note中不存在':',那么就会这样LEFT(note,-1),就会出错

解决方案 »

  1.   

    不是,是你的note中没有':',则charindex(':',note)=0, left(note, CHARINDEX(':', note) - 1) = left(note,-1)出错了。
      

  2.   

    LEFT(note, case when CHARINDEX(':', note)=0 then 1 else CHARINDEX(':', note) end - 1)
      

  3.   

    SELECT * 
    FROM a 
    WHERE (LEFT(note, case when CHARINDEX(':', note)  = 0 then  1 else CHARINDEX(':', note) end - 1) NOT IN 
              (SELECT i 
            FROM b)) 
      

  4.   

    ---select *
    from a ,b
    where charindex(b.i+':',a.note)= 0 
      

  5.   


    试试
    SELECT * 
    FROM a 
    WHERE (
           LEFT(note, 
                (case 
                   when CHARINDEX(':', note)>1 then CHARINDEX(':', note) 
                   else 1 
                 end) - 1
               )  
           NOT IN (SELECT i FROM b)
          )