在表中是一个字段值是 109;110;111如何拆分出来的'109','110','111'
SELECT  a.VALUE,a.DSC
FROM PMARK_DSC2 a
WHERE (a.IDX1 in (select prd_ from a))
Order By a.VALUEselect prd_ from a 结果是 109;110;111
如何变成:
SELECT  a.VALUE,a.DSC
FROM PMARK_DSC2 a
WHERE (a.IDX1 in ('109','110','111'))
Order By a.VALUE

解决方案 »

  1.   

    http://www.cnblogs.com/aijun/archive/2012/04/09/2438894.html
      

  2.   

    SELECT a.VALUE,a.DSC FROM PMARK_DSC2 a WHERE (a.IDX1 in (
    select substring(prd_,1,3) from a union select substring(prd_,5,3) from a union select substring(prd_,8,3) from a ))
    Order By a.VALUE
      

  3.   

    SELECT a.VALUE,a.DSC
    FROM PMARK_DSC2 a
    WHERE EXISTS(SELECT 1 FROM A WHERE ';'+prd_+';' LIKE '%'+ LTRIM(';'+a.IDX1+';')+'%'  )
    Order By a.VALUE
      

  4.   

    SELECT a.VALUE,a.DSC FROM PMARK_DSC2 a WHERE (a.IDX1 in (
    select substring(prd_,1,3) from a union select substring(prd_,5,3) from a union select substring(prd_,8,3) from a ))
    Order By a.VALUE