SQL Server更新某一列中多个字典码对应内容(sql示例)

目录

    • 示例-查询出多个字典码对应的内容
    • 示例-替换多个字典码对应的内容
    • 说明
      • CHARINDEX
      • FOR XML PATH

示例-查询出多个字典码对应的内容

建立表格:学生-学习科目表student_study
注意:科目kemu列内容是字典码,需要更换成对应内容。
SQL Server更新某一列中多个字典码对应内容(sql示例)_第1张图片
建立表格:编号-学科对应表格xueke
注意:这张表是字典码编号和科目xueke的对应关系表。
SQL Server更新某一列中多个字典码对应内容(sql示例)_第2张图片

查询结果:SQL Server更新某一列中多个字典码对应内容(sql示例)_第3张图片
SQL代码:

select a.kemu,stuff((
    select ','+b.xueke from  xueke  b
    where charindex(','+b.bianhao+',',','+a.kemu+',')>0 
    for xml path('')
    ),1,1,'') as kemus 
from student_study a

示例-替换多个字典码对应的内容

更新结果:

SQL Server更新某一列中多个字典码对应内容(sql示例)_第4张图片
表里科目列字典项数据已经替换成对应内容:
SQL Server更新某一列中多个字典码对应内容(sql示例)_第5张图片
SQL代码:

UPDATE   a  SET a.kemu=stuff((
    select ','+b.xueke from  xueke  b
    where 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形式展现,将多行的结果,展示在同一行。

你可能感兴趣的:(SQL)