日期:2014-05-18  浏览次数:20466 次

求解一条SQL语句?
一个表的其中一个字段是text 其值类似于1850,1853,10
通过sql语句如何分别找到1850和1853和10

------解决方案--------------------
SQL code


 select F1,F2,SUBSTRING(F2,1,CHARINDEX(',',F2)-1) as 第一列,
case when charindex(',',RIGHT(F2,len(F2)-CHARINDEX(',',F2)))>0 then
 SUBSTRING(RIGHT(F2,len(F2)-CHARINDEX(',',F2)),1,CHARINDEX(',',RIGHT(F2,len(F2)-CHARINDEX(',',F2)))-1)
 else RIGHT(F2,len(F2)-CHARINDEX(',',F2)) end as 第二列
FROM tb


F1         F2                   第一列                  第二列
---------- -------------------- -------------------- --------------------
a          1,2,5                1                    2
b          1,33                 1                    33
c          333,5                333                  5
c          3,5,433              3                    5
c          3,23424              3                    23424

(5 行受影响)