特殊情况下以逗号分隔多参照ID,获取其对应的名称

来源:互联网 发布:网络用语菜鸟什么意思 编辑:程序博客网 时间:2024/06/05 22:41

1.通俗情况下,一个字段属性中存储着多个参照其他表的ID ,假定是以逗号进行分隔的,此时我们需要查询出对应的参照名称,此时需要我们如何去做呢?

真实案例:存储多个树种的ID ,查询出对应树种的名称

  一般情况是查询方法是:select  a.TreeTypeName  from  TreeType a where a.TreeTypeID in('1','2','3')

 能够将对应的树种名称进行查询出来。


2、但是,很多实际的情况上面的可能满足不了我们的需求,比如在一些额外的附加条件下面,一些拼接语句和其他语句进行连接的过程中,会受到一些限制,笔者亲身经历,嘻嘻。

在不断的问度娘的过程中,终于找出一个行之有效的方法以此来进行分享和自己以后的使用和学习。主要是用到了sql的一个方法:charindex


select treeName=stuff((select ','+b.TreeTypeName from TreeType b where charindex(','+convert(varchar,b.TreeTypeID),','+a.TreeTypeID)>0 for xml path('')),1,1,'')  from ProjectLandBlockInfo a

  a:   TreeType 是存储的树种的类型及其名称的表格:

   例如    ID        名称

               1         杨树

               2        柳树

               .....

b:  ProjectLandBlockInfo 是实际过程过程中使用的项目,用到的树种类型

例如: ID      树种类型

             1           1,2

              2           1

               .....

    仅此进行总结和学习,有问题可以随时提出进行改进,学习的不深,见谅!




  


  

0 0
原创粉丝点击