首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL SERVER解决方法

2013-06-19 
SQL SERVER 数据库字段中,用户的类型是一串ID组成的字符串如(11,12,30)。显示的结果是 用户名|类型名称1,类

SQL SERVER
 数据库字段中,用户的类型是一串ID组成的字符串如(11,12,30)。显示的结果是
 用户名  |类型名称1,类型名称2...|
 一般像(11,12,30)这种形式存储的字段怎么处理的? SQL?Server
[解决办法]

引用:
declare @id int set @id=11
select * from tablename where charindex(','+ltrim(@id)+',',','+colname+',')>0

这个是查询某一个类别下的数据。
如果数据结构设计的合理的话,可以使用like '类别%',可以使用索引。
类别的编号如下所示:(编码对应的长度根据实际的业务进行设计)
跟级别(00)
  一级1(0000)
       二级1(000000)
       二级2(000001)
       二级3(000002)
   一级2(0001)
       二级1(000100)
       二级2(000101)
       二级3(000102)
[解决办法]
hey jude,

一般是这种存储方法,用in拼个动态sql

declare @s varchar(1000),@ID varchar(100)
set @id = '11,12,30'
set @s = 'select * from table_name where ID in('+@id+')'
exec(@s)

不过不建议用这个方式,做关联的时候非常麻烦,还要拆分字符串。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

declare @id int set @id=11
select * from tablename where charindex(','+ltrim(@id)+',',','+colname+',')>0

这个是查询某一个类别下的数据。
如果数据结构设计的合理的话,可以使用like '类别%',可以使用索引。
类别的编号如下所示:(编码对应的长度根据实际的业务进行设计)
跟级别(00)
  一级1(0000)
       二级1(000000)
       二级2(000001)
       二级3(000002)
   一级2(0001)
       二级1(000100)
       二级2(000101)
       二级3(000102)
 谢谢 我那些类别是用的id啊 我用函数把(1,4,6)。拆成了一个表格了
1
4
6.
但是我不知道怎么和那个用户表关联啊。
用户表结构
用户名,经营类别
张三 1,4,6

如果你已经拆分好了,直接使用in('1','2') 就OK了

热点排行