转学一个CSDN群友的好问题案例!!!关于把科目属性用数字替换如下:
来源:互联网 发布:linux的sed命令 编辑:程序博客网 时间:2024/05/02 04:49
有一个表,数据是学生选课情况,例如:
姓名: 科目:
张三 语文
李四 数学
王五 历史
西的 数学,历史
似的 化学
地方 语文,化学
等等,
我想将科目用编号代替,结果如下:
姓名: 科目:
张三 1
李四 2
王五 3
西的 2,3
似的 4
地方 1,4
完整的解决方案为:
先建好科目表,结构如下:
Create table cls (clsid int,clsname varchar(10))
insert cls values(1,'语文')
insert cls values(2,'数学')
insert cls values(3,'英语')
然后根据如下函数更新学生选课表:
create function fGetSubject(@subject varchar(1000)) -----------对应于课目可有,如一个人有数学,语文等
as
return varchar(100) ------返回类型
begin
declare @str varchar(100) ---------对应于返回值类型,
set @str='' ----------记住这里不是空字符,面是双紧团引号如:‘’,而不是' '
select @str=@str+','+rtrim(clsid) -----加',',形成结果为:1,2,3之类的结果 (circlex)
from cls
where charindex(clsname ,@subject)>0 -------------为了只找出表中有科目与FUNCTION匹配时,才处理------(circlex)
select @str=stuff(@str,1,1,'') ----截取第一个‘,’,而形成结果为1 或1,2,3(而不是,1或,1,2,3)
return @str ---------返回值
end
update 学生选课表 set 科目=dbo.fGetSubject(科目) ----------用FUNCTION更新表中数据
注:两个(circlex)间的语句对FUNCTION的@subject进行处理
- 转学一个CSDN群友的好问题案例!!!关于把科目属性用数字替换如下:
- 今天在csdn上遇到一个问题,是关于sql数据行列转换的,我的写法如下:
- 关于转学
- 关于沟通问题的一个案例
- 数字转二进制的问题,题目如下:
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何把处理好后的数据导出Excel文件中(含背景\字体颜色设置)
- 就转学习编程的主要问题
- 一个好的决策案例
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 关于csdn博客的一个小问题
- 数据库 把一个建好的基本表的属性类型int转变成varchar类型
- JavaScript--正则表达式
- Hibernate_Spring中通用的DAO类
- JavaScript 随笔汇集
- 某些FUNCTION用法的复习!!!
- java情感之路
- 转学一个CSDN群友的好问题案例!!!关于把科目属性用数字替换如下:
- 转贴一个SQLSERVER圈子的作品!!!
- ASP.NET 2.0中合并 GridView 的表头单元格
- 模拟Windows选项卡
- 常用的Javascript
- 简单测试动态游标(REF CURSOR)的使用
- currently look same sex some question!!!
- Huffman编码的8种实现方式
- 浅谈 接口(Interface)的作用