一个表的其中一个字段是text 其值类似于1850,1853,10
通过sql语句如何分别找到1850和1853和10
通过sql语句如何分别找到1850和1853和10
解决方案 »
- 这个触发器哪错了?我是菜鸟 大侠帮忙看下
- 如何做好一个数据库开发 team leader
- 求一触发器(关于帐务删除)!
- 数据库同步问题(菜鸟发问,散分求解,帮顶有分)
- 根据类似发送路径字段(999999-99999-90302-90303),和某一个字段值(99999)查询其上个节点?
- 怎么读取某个数据库里面的全部用户表的名称呢,想单个表导出或备份???
- 为什么我的SQL2000装不上?
- 关于时间格式函数(在线等待),急!!
- 怎么提高数据库的查询效率?
- 关于char,varchar的效率
- win7下安装的sqlserver2005 但是1433端口没打开
- [玻璃鱼V]在线等,T-SQL中,字符串相加问题
insert into tb select 'a','1,2,5'
insert into tb select 'b','1,3'
insert into tb select 'c','3,5'
go
SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b
SELECT A.F1, SUBSTRING(A.F2, B.id, CHARINDEX(',', A.F2 + ',', B.id) - B.id) F2
FROM tb A, # B
WHERE SUBSTRING(',' + A.F2, B.id, 1) = ','
/*
F1 F2
---------- --------------------
a 1
a 2
a 5
b 1
b 3
c 3
c 5(7 行受影响)*/
go
DROP TABLE tb,#
select substring(f2,1,1) as f2 from tb where charindex('2',f2)>0 or charindex('3',f2)>0 or charindex('5',f2)>0
select * from tb
select F1,SUBSTRING(F2,1,CHARINDEX(',',F2)-1)as 第一列 ,
substring(RIGHT(F2,len(F2)-CHARINDEX(',',F2)),1,CHARINDEX(',',F2)-1)as 第二列
from tb
F1 F2
---------- --------------------
a 1,2,5
b 1,3
c 3,5
c 3,5,433
c 3,24(5 行受影响)F1 第一列 第二列
---------- -------------------- --------------------
a 1 2
b 1 3
c 3 5
c 3 5
c 3 2(5 行受影响)
select F1,SUBSTRING(F2,1,CHARINDEX(',',F2)-1) as 第一列,
substring(RIGHT(F2,LEN(F2)-CHARINDEX(',',F2)),1,CHARINDEX(',',RIGHT(F2,LEN(F2)-CHARINDEX(',',F2)))-1) as 第二列
FROM tb
insert into tb select 'a','1,2,5'
insert into tb select 'b','1,33'
insert into tb select 'c','333,5'
insert into tb select 'c','3,5,433'
insert into tb select 'c','3,23424'
go drop table tb
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 tbF1 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 行受影响)
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 行受影响)