取这样的数据(a,b,c)变成(a代表的意思,b代表的意思,c代表的意思)方法
2007-10-01 11:05
267 查看
---创建测试环境
Create Table Tags(ID int,Name Varchar(20))
Insert Tags Select 1, 'Tag1 '
Union All Select 2, 'Tag2 '
Union All Select 3, 'Tag3 '
Union All Select 4, 'Tag4 '
Union All Select 5, 'Tag5 '
Go
Create Table Test(ID int,Title Varchar(20),TagID Varchar(20))
Insert Test Select 1, '标题1 ', '1,4 '
Union All Select 2, '标题2 ', '1,3,4 '
Union All Select 3, '标题3 ', '2,5 '
Union All Select 4, '标题4 ', '3,4 '
Union All Select 5, '标题5 ', '2,3,4,5 '
Go
---创建函数
Create Function dbo.fnTest(@ID Varchar(10))
Returns Varchar(8000)
As
Begin
Declare @sql Varchar(8000)
Set @sql= ' '
Select @sql=@sql+ ', '+[Name] From Tags Where Charindex(rtrim(ID),@ID) >0
Return Stuff(@sql,1,1, ' ')
End
Go
---调用自定义函数查询结果
Select ID,Title,dbo.fnTest(TagID) As Tags From Test
---删除测试环境
Drop Table Tags,Test
Drop Function fnTest
---结果
/*
ID Title Tags
----------- -------------------- ------------------------
1 标题1 Tag1,Tag4
2 标题2 Tag1,Tag3,Tag4
3 标题3 Tag2,Tag5
4 标题4 Tag3,Tag4
5 标题5 Tag2,Tag3,Tag4,Tag5
(所影响的行数为 5 行)
*/
Create Table Tags(ID int,Name Varchar(20))
Insert Tags Select 1, 'Tag1 '
Union All Select 2, 'Tag2 '
Union All Select 3, 'Tag3 '
Union All Select 4, 'Tag4 '
Union All Select 5, 'Tag5 '
Go
Create Table Test(ID int,Title Varchar(20),TagID Varchar(20))
Insert Test Select 1, '标题1 ', '1,4 '
Union All Select 2, '标题2 ', '1,3,4 '
Union All Select 3, '标题3 ', '2,5 '
Union All Select 4, '标题4 ', '3,4 '
Union All Select 5, '标题5 ', '2,3,4,5 '
Go
---创建函数
Create Function dbo.fnTest(@ID Varchar(10))
Returns Varchar(8000)
As
Begin
Declare @sql Varchar(8000)
Set @sql= ' '
Select @sql=@sql+ ', '+[Name] From Tags Where Charindex(rtrim(ID),@ID) >0
Return Stuff(@sql,1,1, ' ')
End
Go
---调用自定义函数查询结果
Select ID,Title,dbo.fnTest(TagID) As Tags From Test
---删除测试环境
Drop Table Tags,Test
Drop Function fnTest
---结果
/*
ID Title Tags
----------- -------------------- ------------------------
1 标题1 Tag1,Tag4
2 标题2 Tag1,Tag3,Tag4
3 标题3 Tag2,Tag5
4 标题4 Tag3,Tag4
5 标题5 Tag2,Tag3,Tag4,Tag5
(所影响的行数为 5 行)
*/
相关文章推荐
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- sql将数据列表变成字符串(数组)的最佳方法
- s9303这样的arp表是代表什么意思?
- 获取数据和解析数据的方法尽量分开写,这样可以降低代码之间的耦合性
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- Oracle 恢复数据后,数据库中中文变成问号解决方法
- excel数据变成insert 脚本的方法
- 【LVL1_6_c】【思考题】【2】解释这些数据声明都代表的什么意思?
- excel表格中的数据变成json格式的方法
- a.b.c.d.e.f.g这样的字段变成d.e.f.g的几种方法
- Android 中BitmapFactory.decodeResource方法参数个代表什么意思
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- Bootstrap里的文件分别代表什么意思及其引用方法
- C#excel数据导入DataGridView第一行数据变成标题处理方法
- 让oracle数据表不显示中文而变成问号的方法
- 泛型方法<T> List<T> methodName(){},两个T分别代表什么意思?
- 原因分析如下: 遇到这种情况,很有可能是把一个int型业务数据的 设置setText()或者类似的方法中, 这样Android系统就会主动去资源文件当中寻找, 但是它不是一个资源文件ID, 所
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- Bootstrap里的文件分别代表什么意思及其引用方法