找牛人写条SQL查询语句解决办法
发布时间:2011-06-21 11:24:04 文章来源:www.iduyao.cn 采编人员:星星草
找牛人写条SQL查询语句
表 t1,有个字段aaa
ID aaa
1 a1,a2
2 a2,a4
3 a8
4
5 a9,a1
需得到结果:
a1
a2
a4
a8
a9
若能按出现的次数排序就更完美了
先谢谢!
------解决方案--------------------
在程序中控制吧,不要把太多逻辑控制放到SQL语句中,况且这种东西好像不太好搞
------解决方案--------------------
一条sql语句搞不定,可能要考虑用到存储过程或者在程序里面控制
------解决方案--------------------
绝对支持在前台处理
后台要对字符串处理很麻烦。其他没有什么,
也就是创建一个临时表,储存两个字段,一个是a1.a4.a8这样的内容,一个放次数。
然后用order by很容易就排出你想要的顺序。
sql的帮助找一下字符处理就可以做出来了,不难的。
------解决方案--------------------
在前台处理显然要比在数据库中直接操作效率要高得多啊..
------解决方案--------------------
暂同wangkun9999的说法
------解决方案--------------------
很显然,要使用类似split的函数
--1、建立split自定义函数
create Function Split(@Sql varchar(8000),@Splits varchar(10))
returns @temp Table (a varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i > = 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+1,Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End
If @Sql <> ' '
Insert @temp Values (@Sql)
Return
End
--建立测试数据
create table t1
(id int identity(1,1),aaa varchar(1000))
--插入数据
insert into t1
select 'a1,a2 ' union all
select 'a2,a4 ' union all
select 'a8 ' union all
select ' ' union all
select 'a9,a1 '
--获取数据
declare @sql varchar(8000)
set @sql = 'select distinct * from split( ' ' '
select @sql = @sql + aaa + ', ' from t1 where isNull(aaa, ' ') <> ' '
if right(@sql,1)= ', '
set @sql = left(@sql,len(@sql)-1)
exec(@sql+ ' ' ', ' ', ' '); ')
/*
结果
a ---------------
a1
a2
a4
a8
a9
*/
------解决方案--------------------
什么需求要求要有这样的数据库结构啊???
我觉得有百分之九十的可能是数据库设计不合理,要么就用XML字段得了,要么牺牲一点冗余吧!这样放在一个字段里,都不能看作一个集合,也用不了IN运算...
------解决方案--------------------
为什么不用dataview去实现??
------解决方案--------------------
select aaa from t1 group by aaa
------解决方案--------------------
这个需求不合理
强烈要求换修改数据库
^_^
------解决方案--------------------
如果要获得最高的效率建议重新设计数据库
这个应该属于没有消除传递依赖。
------解决方案--------------------
应该在后台处理.建个辅助表,一句可以搞定.
------解决方案--------------------
Select convert(char(2),aaa ) form t1 order by convert(char(2),aaa )
若都为两位 绝对可行^_^
------解决方案--------------------
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
C#读取文本并入库
文本格式固定如下:
**********************:
<中文作者一>=赵逢玲
<中文作者二>=杜秀华
<中文作者三>=王翠东
<中...
-
C#操作Word文档(Office 2007)
首先引入类库,Microsoft.Office.Interop.Word,然后进行编程。代码如下:
using ...
-
请问,ReadLine方法读取文件
一个txt文件,有两行
aaaa
bbbb
代码:
string s1 = @"D:iosamplepp.txt";
using (StreamReader sr = new...
-
验证控件
在gridview页脚行添加了验证控件,可是点击编辑更新时触发了验证事件,无法更新,怎么办?
------解决方案-------------------...
-
在BITMAP上用GDI+画图,如何使画出的图像尽可能清晰?
我在一张bitmap上用GDI+绘制了简单的多边形,并用PictureBox显示。
我发现,如果我...
-
???如何利用webbrower获取ifream元素????
如何利用webbrower获取ifream元素.我在GOOGLE,BAIDU一整天依然无法找到解决方法!!希望各...
-
如何解决“已有打开的与此命令相关联的DataReader,必须首先将它关闭。”错误?
小弟写了一个DBHelper类来控制数据库访问,但是在实际...
-
在做asp.net项目时,在做数据库更新时出现',' 附近有语法错误。(数据库是用sql2000的)
数据库更新语句:
public void Update()
...
-
为什么我这段代码不会发出声音呢?
C# code
using System;
using System.Collections.Generic;
using System.ComponentModel;
usi...
-
ClickOnce 不支持请求执行级别requireAdministrator
写了一个应用程序,使用ServiceController控制 windows服务的的启动和停止。
...