--小明:
select 天气=max(case 列名 when '天气' then 内容 end),
心情=max(case 列名 when '心情' then 内容 end),
时间
from 表a
where 姓名='小明'
group by 时间--小红:
select 天气=max(case 列名 when '天气' then 内容 end),
心情=max(case 列名 when '心情' then 内容 end),
时间
from 表a
where 姓名='小红'
group by 时间
select 天气=max(case 列名 when '天气' then 内容 end),
心情=max(case 列名 when '心情' then 内容 end),
时间
from 表a
where 姓名='小明'
group by 时间--小红:
select 天气=max(case 列名 when '天气' then 内容 end),
心情=max(case 列名 when '心情' then 内容 end),
时间
from 表a
where 姓名='小红'
group by 时间
解决方案 »
- 求一个存储过程,定长且以|分隔的文件抽取
- 怎样在SQLSERVER中实现这样的操作,往某个字段的所有记录的第一个数字前加一个空格?
- 如何用触发器实现,提示某个字段必须录入数据?
- 无法在服务器上访问指定的路径或文件
- 怎样用union把while里面select出来的表格并成一个表呢?内含代码:
- 怎么样取得Access库中的表的数目
- 怎么向数据库一次插入多条记录 问题解决了马上结帖给分~
- 请问那有SQLserver2000的中文帮助下载。(因本人用的是7.0)
- 这里是个计算,统计的问题,请高手指教!对我太难太难。
- 谁有bea 的Sql Server 200 jdnc driver?
- 有关asp与SQL server(一个asp文件可以调用两个数据库文件吗?)
- 关于功能菜单和权限选择的问题,这个SQL应该怎么写?谢谢。
心情=max(case 列名 when '心情' then 内容 end),
姓名,时间
from 表a
where 姓名='小明'
group by 姓名,时间
select 天气=max(case 列名 when '天气' then 内容 end),
心情=max(case 列名 when '心情' then 内容 end),
姓名,时间
from 表a
group by 姓名,时间
--如果要根据人名来做查询,可以写个存储过程
create proc p_qry
@姓名 varchar(20)
as
set nocount on
declare @s nvarchar(4000)
set @s=''
select @s=@s+quotename(列名)
+'=max(case 列名 when '+quotename(列名,'''')
+' then 内容 end),'
from 表a
where 姓名=@姓名
group by 列名
set @s='select '+@s+'时间 from 表a where 姓名=@姓名 group by 时间'
exec sp_executesql @s,N'@姓名 varchar(20)',@姓名
go--调用
exec p_qry '小红'
要生成新表的话,写个存储过程,在里面拼字段,然后执行一下