- 浏览: 1468165 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (460)
- java (148)
- javascript (34)
- Flex文章 (4)
- css+div (2)
- ajax (6)
- extjs (11)
- 人生感悟 (9)
- struts2.0 (6)
- IT之路,生活 (15)
- hibernate (6)
- struts1 (1)
- spring (5)
- j2ee错误 (3)
- Dwr (5)
- Linux (33)
- C++ (3)
- SWT Win32 (2)
- EJB (1)
- JPA (4)
- C语言和LinuxC (7)
- SQL (13)
- 项目经理 (6)
- db2 (2)
- java数据结构 (2)
- 网页播放器flv (1)
- 数据库 (24)
- 用户体验设计学习 (2)
- 网络电话 (5)
- 军事理论 (4)
- android (3)
- oracle (18)
- oracle ebs form (11)
- oracle ebs oaf (4)
- erp (20)
- DBA (9)
- java中URL 的编码和解码函数 (1)
- 铁血丹心 (1)
- excel 单元格格式不能立即生效 (1)
- Java调用bat文件 (1)
- 如何把本地outlook中的邮件上传到网络邮箱中 (1)
- java 报表 打印 (1)
- 创建dblink (1)
- 图标前台框架 (1)
- vnc (1)
- FORM (1)
- MYSQL (1)
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
web打印不显示页眉页脚 -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
Javascript网页打印大全 -
hardyer:
大哥写的很实在,受教了,提前祝你元旦快乐!
黎活明给程序员的忠告 -
cxysilahi:
请问WIN7 64位,调用报错Exception in thr ...
JNative的初步使用 -
action1949:
好东西,解决问题
JFreeChart乱码解决方法
select 姓名
From t1 Group By 姓名
这样的话可以出来姓名
Select 姓名,sum(case when 科目='语文' then 成绩 else 0 end) As '语文' From表1 Group By 姓名
利用聚合函数却可以得到一个人因为每个人只有个科目列。
于是会想到。
Select 姓名,
sum(case when 科目='语文' then 成绩 else 0 end) As '语文' ,
sum(case when 科目='数学' then 成绩 else 0 end) As '数学',
sum(case when 科目='英语' then 成绩 else 0 end) As '英语'
From 表1 Group By 姓名
sum(case when 科目='语文' then 成绩 else 0 end) As '语文' ,
sum(case when 科目='数学' then 成绩 else 0 end) As '数学',
sum(case when 科目='英语' then 成绩 else 0 end) As '英语'
From 表1 Group By 姓名
于是想到会组合sql语句了:
select 'sum(case when 科目=''' +ltrim(rtrim(科目))+''' then 成绩 else 0 end) As ''' +ltrim(rtrim(科目))+''','
from t1
Group By 科目
from t1
Group By 科目
组合完成后就可以了了。其实都是sql语句的组合,让后就是执行的问题。
执行其实就是个串的执行。
declare @sql nvarchar(4000)
set @sql='select 姓名 '
Select @sql=@sql+',sum(case when 科目='''+ltrim(rtrim(科目))+ ''' then 成绩 else 0 end) As '''+ltrim(rtrim(科目))+''''
From t1 Group By 科目
set @sql=@sql+' from t1 group by 姓名 '
Print @sql
execute sp_executesql @sql
set @sql='select 姓名 '
Select @sql=@sql+',sum(case when 科目='''+ltrim(rtrim(科目))+ ''' then 成绩 else 0 end) As '''+ltrim(rtrim(科目))+''''
From t1 Group By 科目
set @sql=@sql+' from t1 group by 姓名 '
Print @sql
execute sp_executesql @sql
同时创建视图的内容
又来了个新的问题,如何判断是不是存在视图,或者表的问题,然后对他们进行删除之后重新创建。
1。判断数据库是不是纯在
if exists ( select * From master.dbo.sysdatabases where name='数据库的名字' )
print '存在'
print '存在'
else
print '不存在'
print '不存在'
2。判断数据库表是不是存在
if exists (select count(*) from sysobjects where id = object_id(数据库名字.Owner.表名称'))
print '存在'
else
print '不存在'
print '存在'
else
print '不存在'
3。判断视图或者存储过程是不是存在
if object_id('vcastarea') is not null
print 'cheng'
else
print 'yue'
print 'cheng'
else
print 'yue'
4。SQL Server中判断表中字段是否存在:
if exists
(select * from syscolumns where name='colname1' and id=object_id('数据库名.Owner.表名'))
print '存在'
else
print '不存在'
(代表表tablename1中存在colname1字段 )
例:
select * from syscolumns where name='Test' and id=object_id('dbo.test')
sql语句中错误
一。
服务器: 消息 111,级别 15,状态 1,行 4
'CREATE VIEW' 必须是批查询中的第一条语句。
一。
服务器: 消息 111,级别 15,状态 1,行 4
'CREATE VIEW' 必须是批查询中的第一条语句。
这个时候我们必须添加一条go语句,表示是一个批的处理的开始。
二。
第 3 行: ' ' 附近有语法错误。
这个意思 是在最后边的空白的地方出错误了,这样就是要求把一切的空白的东西都删掉直到最后一个可见的字符。
二。
第 3 行: ' ' 附近有语法错误。
这个意思 是在最后边的空白的地方出错误了,这样就是要求把一切的空白的东西都删掉直到最后一个可见的字符。
发表评论
-
OPatch(6880880)
2020-09-27 09:32 4591) 使用下面的链接从 My Oracle Support( ... -
POI3.8中 大数据量的处理
2016-03-21 15:34 650package cn.cy.codeTest; i ... -
Navicat Premium导数据的方法
2016-03-21 10:05 3516转:http://baohua.me/database/or ... -
Oracle 动态创建表和表名
2013-11-28 11:05 2389http://blog.csdn.net/pingdan_y ... -
DBMS_OUTPUT包学习
2012-06-26 11:18 0http://www.blogjava.net/decode3 ... -
oracle查询约束
2012-05-09 22:49 1108select distinct constraint_type ... -
sql server 函数
2011-03-23 15:25 1101go drop function gethystr go ... -
详解NoSQL数据库使用实例
2011-03-22 16:08 4031一、NoSQL基础知识 1.关于在"NoSQL ... -
NoSQL数据库探讨之一 - 为什么要用非关系数据库?
2011-03-22 16:06 1084随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个 ... -
Oracle中游标的使用
2011-03-12 17:41 13941;字符串变量例子2 给 ... -
Oracle中随机抽取N条记录
2011-03-11 13:41 15573转载来源:http://www.orafa ... -
Mysql建立索引
2010-10-13 10:02 2000最普通的情况,是为出 ... -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
2010-09-29 11:40 12801.INSERT INTO SELECT语句 ... -
数据库查询速度慢的原因
2010-09-20 11:24 1472查询速度慢的原因很多 ... -
Oracle函数分类总结.
2010-09-19 15:47 1442Oracle内置SQL函数-分类整理大全F.1字符函数——返回 ... -
oracle函数详解
2010-09-19 15:31 15841、SQL 语句基础下面给出SQL语句的基本介绍。1.1、SQ ... -
mysql和sql时间 字段比较大小的问题
2010-09-19 13:46 8391不能用两个字符串比较的小的方法来做。例如:‘2010-10-2 ... -
mysql常用函数
2010-09-07 10:36 1625一、数学函数 ABS(x) ... -
mysql常用函数详解和实例
2010-09-07 10:25 2977结合MySQL自带的帮助文 ... -
sql条件语句
2010-07-21 11:48 1888Transact-SQL 语言使用的流程控制命令与常见的程序设 ...
相关推荐
sqlserver 行转成列 sqlserver 把行转成列 sqlserver 把行转成列
sqlserver 动态行专列 避免了数据列过多的时候大量的使用case when then...... 原数据 : UserName Subject Score Nick 语文 80 Nick 数学 90 Nick 英语 70 Nick 生物 85 Kent 语文 80 Kent 数学 90 Kent ...
sqlserver 实现 行转列 split 分割的函数,具体使用方法写有在文件里。
sql server2000 jdbc java连接sql server2000必备
数据库数据之间的转化,软件方便快捷 sql转化成mysql工具 mysql转化成sql server
sqlserver2000个人版 sqlserver2000企业版 sqlserver2000开发版
SQL Server 2000 笔记是我在上课的时候记的笔记,很实用的,无论是用sql还是Access数据库都可以供参考,里面有很多例子哦。
jdbc连接sqlserver2000数据库的驱动包;包含msbase jar mssqlserver jar msutil jar 注意事项:下载解压sql包 数据源驱动 rar文件 解压后的驱动包文件应放到固定的文件夹下 以避免再次打开程序运行时 系统能找到驱动...
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别 名称 AAA 企业1 AAA 企业2 AAA 企业3 ...
SqlServer如何进行行转列和列转行方法
Sql Server里面的行转列,列转行
SQL Server 2000 审计功能
sqlserver 行数据转成列数据,#temp1为数据表,#temp2为辅助表,具体场景可微调替换。
sqlserver个人学习笔记
SQL server 2008
SQLServer老版本的jar包,idea中没有老版本的jar包,需要手动添加,我使用的是sqlserver2000。
笔记是本人学习SQLServer一段时间后重新整理出来的,适合有一些入门基础的人学习。 ├─01 安装及使用 │ SQLServer2005安装及使用.txt │ ├─02 常用函数 │ function.sql │ ├─03 建表、建库 │ create.sql ...
邹建-中文版SQL Server2000开发与管理应用实例 一书的目录,可以对照一下 第 1 章 安装和配置SQL Server 1 1.1 SQL Server的版本和版本选择 1 1.2 安装SQL Server的常见问题 3 1.3 如何理解实例 5 ...
sql server2000sql server2000sql server2000sql server2000sql server2000sql server2000sql server2000sql server2000sql server2000sql server2000