sql查询as别名如何动态?
一般采用
select a.cname , b.dvalue from 表a a inner join 表b b on a.cid=b.cid
然后根据 cname 的值,来在外面程序中 判断。
给你个动态列的示例,你可以参考下,符合你的要求!
declare @name varchar(100), @sql_str varchar(8000),@crt_sql varchar(8000),@drp_sql varchar(8000),@join varchar(8000)
select @name = '', @sql_str = 'select a.cid ', @join = ' from 表a a ', @crt_sql = '',@drp_sql = ''
declare usercursor cursor
for select distinct cname from 表a
open usercursor
FETCH NEXT FROM usercursor into @name
while @@FETCH_STATUS = 0
begin
--读取下一行数据把读取的数据放在变量中
declare @tb varchar(50)
set @tb = 'tmptmp_'+@name
set @crt_sql = ' select cid, dvalue as '+@name+' into '+ @tb + ' from 表b where cid in ( select cid from 表a where cname = '''+@name+''') '
exec(@crt_sql)
set @sql_str = @sql_str + ' , '+@tb+'.'+@name
set @join = @join + ' left join '+@tb+' on a.cid = '+@tb+'.cid '
set @drp_sql = @drp_sql +' DROP TABLE '+ @tb + ' '
FETCH NEXT FROM usercursor into @name
end
close usercursor
deallocate usercursor
exec(@sql_str+@join)
exec(@drp_sql)
-- print @sql_str+@join
select a.cname , b.dvalue from 表a a inner join 表b b on a.cid=b.cid
然后根据 cname 的值,来在外面程序中 判断。
给你个动态列的示例,你可以参考下,符合你的要求!
declare @name varchar(100), @sql_str varchar(8000),@crt_sql varchar(8000),@drp_sql varchar(8000),@join varchar(8000)
select @name = '', @sql_str = 'select a.cid ', @join = ' from 表a a ', @crt_sql = '',@drp_sql = ''
declare usercursor cursor
for select distinct cname from 表a
open usercursor
FETCH NEXT FROM usercursor into @name
while @@FETCH_STATUS = 0
begin
--读取下一行数据把读取的数据放在变量中
declare @tb varchar(50)
set @tb = 'tmptmp_'+@name
set @crt_sql = ' select cid, dvalue as '+@name+' into '+ @tb + ' from 表b where cid in ( select cid from 表a where cname = '''+@name+''') '
exec(@crt_sql)
set @sql_str = @sql_str + ' , '+@tb+'.'+@name
set @join = @join + ' left join '+@tb+' on a.cid = '+@tb+'.cid '
set @drp_sql = @drp_sql +' DROP TABLE '+ @tb + ' '
FETCH NEXT FROM usercursor into @name
end
close usercursor
deallocate usercursor
exec(@sql_str+@join)
exec(@drp_sql)
-- print @sql_str+@join
佚名
2024-06-10 03:59:31
类似问题(10)
-
佚名2024-06-10 13:31:50
问sql 查询未参加选课的学生信息 用连接查询
答未参加选课的学生信息要课程表干嘛 直接select * from 学生表 where 学号 not in(select 学号 from 选课表)
-
佚名2024-06-10 05:38:06
问如何在sql server 中建立别名
答是说同义词?比如有表AdventureWorks.Production.ProductInformation可以建立ProInf指向他CREATE SYNONY...
-
佚名2024-06-10 02:03:29
问SQL 如何查询指定架构中所有表(或视图)的名称
答1、打开并登录sql查询分析器,如下图所示。2、在查询分析器,输入并运行以下代码,查询出相应的视图表有哪些:USE pubs (或具体的数据库名,在此笔者以pu...
-
佚名2024-06-10 08:00:00
问access里怎样建立sql查询?
答首先打开access文件,默认进入数据表视图,在查询选项卡,查询功能区中,点击查询设计在出现的界面中,点击关闭在左上角的位置,找到sql视图,并点击打开输入sq...
-
佚名2024-06-10 08:00:00
问用SQL如何查询一年的十二个月份形成报表?
答SELECT YEAR(日期字段) 年度,SUM(CASE WHEN MONTH(日期字段) =1 THEN 统计的字段 ELSE 0 END) 一月, S...
-
佚名2024-06-10 08:00:00
问SQL,用SELECT查询数据查询全部男学生的学号和姓名
答select SNO,SNAME from S where SSESX='男'下面的你没贴出详细的表结构,没人帮你了欢迎采纳我
-
佚名2024-06-10 08:00:00
问在网上如何查询运动员二级证?急求
答不管是几级运动员,目前都不能在网上查到。需要去地区一级的体育局或省体育厅查询,或者你打电话去咨询,不过会麻烦一点。不过有些体育搞得好的(县)市,体育局自己的信息...
-
佚名2024-06-10 08:00:00
问如何辨别hp硒鼓的真假,如果查询,急!急!
答打官网服务电话 每个硒鼓都有一个批号编码
-
佚名2024-06-10 08:00:00
问sql语句查询: 表: 姓名 、分数、性别 查询要求:查询出>60分的人数、总人数,并根据性别分数,返回结果
答select COUNT(*) as 总人数,sum(case when score>60 then 1 else 0 end) as 合格人数,SUM(cas...
-
佚名2024-06-10 08:00:00
问如何查看过MySQL查询
答mysql中如何查询最近24小时、 where visittime >= NOW() - interval 1 hour; 昨天、 where visittim...
风水
起名
网名
- 1 网名精品店
- 2 英汉双重网名女霸气
- 3 网名图案桃心
- 4 搜集网名四个字的成语
- 5 7个字英雄联盟战队网名大全
- 6 伤感四字网名含泪
- 7 最火的英文昵称
- 8 小虎牙qq昵称
- 9 微博昵称女生有趣
- 10 可以昵称的英文单词
说说
- 1 只要儿子开心就好的个性签名
- 2 爱苹个性签名
- 3 男人想追女生性签名说说
- 4 感觉自己又胖了的说说
- 5 香樟树开花香说说
- 6 听够了谎言的说说
- 7 关于对生活迷茫的说说
- 8 红尘往事记忆如今qq说说
- 9 发一个超甜的说说
- 10 看人看透了的说说