特殊情况下以逗号分隔多参照ID,获取其对应的名称
2016-12-01 10:33
369 查看
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
.....
仅此进行总结和学习,有问题可以随时提出进行改进,学习的不深,见谅!
真实案例:存储多个树种的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
.....
仅此进行总结和学习,有问题可以随时提出进行改进,学习的不深,见谅!
相关文章推荐
- 某表字段值存储另一表的以,分隔的ID,获取相应的以,分隔的ID对应的名称
- mysql 逗号分隔的id转为逗号分隔的名称
- Android中通过资源名称获取对应的ID
- SQL查询ID以逗号分隔,id对应的详细信息
- 逗号连接的id 去关联对应的名称
- 关于.net c#在获取请求参数的时候,一个参数总是获取得逗号分隔的重复值情况原因之一
- 一列保存多个ID(将多个用逗号、特殊符号 隔开的ID转换成用逗号隔开的名称)
- 根据名称获取对应进程名的ID
- Android:根据图片的名称获取对应的资源id
- mysql 逗号分隔的id转为逗号分隔的名称(或者名称转id)
- oracle数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
- 一列保存多个ID(将多个用逗号、特殊符号 隔开的ID转换成用逗号隔开的名称)
- 拆分列(ID的集合)的字符串,根据拆分结果查询所对应ID的名称
- 从符号分隔的命令行获取任意参数的函数(逗号分隔,空格分隔等都可以)
- ArcEngine开发——根据图层名称获取对应图层
- SSH 回顾二 特殊情况下 获取Spring 注入对象
- 获取为以逗号分隔列值的字符串
- Hacking Windows CE: 如何从线程ID获取线程名称
- 一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)
- 获取为以逗号分隔列值的字符串