目录
- 示例-查询出多个字典码对应的内容
- 示例-替换多个字典码对应的内容
- 说明
- CHARINDEX
- FOR XML PATH
示例-查询出多个字典码对应的内容
建立表格:学生-学习科目表student_study
注意:科目kemu列内容是字典码,需要更换成对应内容。
建立表格:编号-学科对应表格xueke
注意:这张表是字典码编号和科目xueke的对应关系表。
查询结果:
SQL代码:
select a.kemu,stuff((select ','+b.xueke from xueke bwhere charindex(','+b.bianhao+',',','+a.kemu+',')>0 for xml path('')),1,1,'') as kemus
from student_study a
示例-替换多个字典码对应的内容
更新结果:
表里科目列字典项数据已经替换成对应内容:
SQL代码:
UPDATE a SET a.kemu=stuff((select ','+b.xueke from xueke bwhere charindex(','+b.bianhao+',',','+a.kemu+',')>0 for xml path('')),1,1,'') FROM student_study a where CHARINDEX(',',a.kemu)>0
说明
CHARINDEX
通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。
CHARINDEX ( expressionToFind , expressionToSearch [, start_location ] )
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
FOR XML PATH
FOR XML PATH ,其实它就是将查询结果集以XML形式展现,将多行的结果,展示在同一行。