今天在处理一个功能的时候遇到一些功能解决问题 这儿贴出来供大家参考 大家看还有什么好点方法如:表CREATE TABLE demo(
demo_id int identity primary key,
demo_name varchar(50)
)INSERT INTO demo VALUES('房地产开发')
INSERT INTO demo VALUES('房地产经纪/销售')
INSERT INTO demo VALUES('建筑业/工程/施工')1 房地产开发
2 房地产经纪/销售
3 建筑业/工程/施工另一表demo_testCREATE TABLE demo_test(
test_id int identity primary key,
demo_ids varchar(500)
)1 1,2,3
2 2,3的demo_ids 中存储了如:1,2,3想通过SQL获取demo_ids 对应的demo_name的值如上想直接用SQL获取demo_test中demo_ids对应的值=>房地产开发,房地产经纪/销售,建筑业/工程/施工对于用C#代码的话 相信这个没有任何难度就能实现以下提供sql解决方案:首先解决获取多个项的问题 这儿使用:charindexselect demo_name from demo where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 这样就获取到了
房地产开发
房地产经纪/销售
建筑业/工程/施工
下一步就是将查询得到的值合并 这儿用到:stuff,ltrim, for xml path('')SELECT stuff( (select ','+ltrim(demo_name) from demo
where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 for xml path('') ),1,1,'')如上 将两表联合查询就能得到想要的结果:SELECT t.test_id, demoName=(SELECT stuff( (select ','+ltrim(demo_name) from demo
where charindex(CONVERT(VARCHAR,demo_id)+',',t.demo_ids+',')>0 for xml path('') ),1,1,''))
from demo_test t1 房地产开发,房地产经纪/销售,建筑业/工程/施工
2 房地产经纪/销售,建筑业/工程/施工这样的查询就可以到达预期效果了
demo_id int identity primary key,
demo_name varchar(50)
)INSERT INTO demo VALUES('房地产开发')
INSERT INTO demo VALUES('房地产经纪/销售')
INSERT INTO demo VALUES('建筑业/工程/施工')1 房地产开发
2 房地产经纪/销售
3 建筑业/工程/施工另一表demo_testCREATE TABLE demo_test(
test_id int identity primary key,
demo_ids varchar(500)
)1 1,2,3
2 2,3的demo_ids 中存储了如:1,2,3想通过SQL获取demo_ids 对应的demo_name的值如上想直接用SQL获取demo_test中demo_ids对应的值=>房地产开发,房地产经纪/销售,建筑业/工程/施工对于用C#代码的话 相信这个没有任何难度就能实现以下提供sql解决方案:首先解决获取多个项的问题 这儿使用:charindexselect demo_name from demo where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 这样就获取到了
房地产开发
房地产经纪/销售
建筑业/工程/施工
下一步就是将查询得到的值合并 这儿用到:stuff,ltrim, for xml path('')SELECT stuff( (select ','+ltrim(demo_name) from demo
where charindex(CONVERT(VARCHAR,demo_id)+',','1,2,3'+',')>0 for xml path('') ),1,1,'')如上 将两表联合查询就能得到想要的结果:SELECT t.test_id, demoName=(SELECT stuff( (select ','+ltrim(demo_name) from demo
where charindex(CONVERT(VARCHAR,demo_id)+',',t.demo_ids+',')>0 for xml path('') ),1,1,''))
from demo_test t1 房地产开发,房地产经纪/销售,建筑业/工程/施工
2 房地产经纪/销售,建筑业/工程/施工这样的查询就可以到达预期效果了
解决方案 »
- C#下使用SQLite的问题:运行异常。请帮忙分析一下,多谢!
- C#中怎么读取数据集中的某个表的某个单元格的Value?? 新手求指教
- win7 升级到 sp1 有什么好处?
- 怎么将DataSet的内容添加到Cache中缓存并读取?
- [10分] 文本文件里的一个换行在C#里表示为什么?
- 哪位能给下提取百度搜索结果(标题和链接)的正则表达式
- C#调用C++DLL,如何引入结构体
- 请教一个XML序列化的问题
- 强烈要求这篇文章的作者出来!《创建可编辑ListView控件》http://www.csdn.net/develop/Read_Article.asp?Id=21801
- 帮我看看程序吧 用了一个ocx的插件
- 在线等急急急急急急 很简单的C#问题
- A图片渐变成B图片
returns @temp table(F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
end
return
end
----调用
select * from dbo.f_splitstr('1,2,3,4',',')
/*
F1
----
1
2
3
4(所影响的行数为 4 行)
*/