- 浏览: 83789 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
package:
不知楼主 是否试过火狐下面报错.....b.firstChil ...
EXTjs grid双层表头的实现 (源代码和示例) -
少年阿郎:
请把你的demo发到我的邮箱15251855442@163.c ...
Ext DateField控件 - 只选择年月 -
岳阳楼:
提示错误:消息: 'prototype' 为空或不是对象行: ...
Ext DateField控件 - 只选择年月 -
hellostory:
引用执行“清除”操作后,问题解决了。 请问如何执行清除操作。。 ...
SVN错误:Attempted to lock an already-locked dir -
jxxms:
可以用,非常好
Ext DateField控件 - 只选择年月
行列互转<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->create table test(id int,name varchar(20),quarter int,profile int)
insert into test values(1,'a',1,1000) insert into test values(1,'a',2,2000) insert into test values(1,'a',3,4000) insert into test values(1,'a',4,5000) insert into test values(2,'b',1,3000) insert into test values(2,'b',2,3500) insert into test values(2,'b',3,4200) insert into test values(2,'b',4,5500) select * from test --行转列 select id,name, [1] as "一季度", [2] as "二季度", [3] as "三季度", [4] as "四季度", [5] as "5" from test pivot ( sum(profile) for quarter in ([1],[2],[3],[4],[5]) ) as pvt create table test2(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int) insert into test2 values(1,'a',1000,2000,4000,5000) insert into test2 values(2,'b',3000,3500,4200,5500) select * from test2 --列转行 select id,name,quarter,profile from test2 unpivot ( profile for quarter in ([Q1],[Q2],[Q3],[Q4]) ) as unpvt
sql替换字符串 substring replace<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->--例子1:
update tbPersonalInfo set TrueName = replace(TrueName,substring(TrueName,2,4),'**') where ID = 1 --例子2: update tbPersonalInfo set Mobile = replace(Mobile,substring(Mobile,4,11),'********') where ID = 1 --例子3: update tbPersonalInfo set Email = replace(Email,'chinamobile','******') where ID = 1
SQL查询一个表内相同纪录 having如果一个ID可以区分的话,可以这么写
<!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->select * from 表 where ID in (
select ID from 表 group by ID having sum(1)>1) <!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->select * from 表 where ID1+ID2+ID3 in
(select ID1+ID2+ID3 from 表 group by ID1,ID2,ID3 having sum(1)>1) <!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
-->--方法1:
SELECT *FROM zy_bho a WHERE EXISTS (SELECT 1 FROM zy_bho WHERE [PK] <> a.[PK] AND ZYH = a.ZYH) --方法2: select a.* from zy_bho a join zy_bho b on (a.[pk]<>b.[pk] and a.zyh=b.zyh) --方法3: select * from zy_bbo where zyh in (select zyh from zy_bbo group by zyh having count(zyh)>1) --其中pk是主键或是 unique的字段。 把多行SQL数据变成一条多列数据,即新增列
|
- |
0 或 100 (1,2) |
默 认 |
mon dd yyyy hh:miAM(或 PM) |
1 |
101 |
美 国 |
mm/dd/yyyy |
2 |
102 |
ANSI |
yy.mm.dd |
3 |
103 |
英 国/法国 |
dd/mm/yyyy |
4 |
104 |
德 国 |
dd.mm.yy |
5 |
105 |
意 大利 |
dd-mm-yy |
6 |
106(1) |
- |
dd mon yy |
7 |
107(1) |
- |
mon dd, yy |
8 |
108 |
- |
hh:mi:ss |
- |
9 或 109 (1,2) |
默 认设置 + 毫秒 |
mon dd yyyy hh:mi:ss:mmmAM(或 PM) |
10 |
110 |
美 国 |
mm-dd-yy |
11 |
111 |
日 本 |
yy/mm/dd |
12 |
112 |
ISO |
yymmdd yyyymmdd |
- |
13 或 113 (1,2) |
欧 洲默认设置 + 毫秒 |
dd mon yyyy hh:mi:ss:mmm(24h) |
14 |
114 |
- |
hh:mi:ss:mmm(24h) |
- |
20 或 120 (2) |
ODBC 规范 |
yyyy-mm-dd hh:mi:ss(24h) |
- |
21 或 121 (2) |
ODBC 规范(带毫秒) |
yyyy-mm-dd hh:mi:ss.mmm(24h) |
- |
126 (4) |
ISO8601 |
yyyy- mm-ddThh:mi:ss.mmm(无空格) |
- |
127(6, 7) |
带时区 Z 的 ISO8601。 |
yyyy-mm-ddThh:mi:ss.mmmZ (无 空格) |
- |
130 (1,2) |
回历 (5) |
dd mon yyyy hh:mi:ss:mmmAM |
- |
131 (2) |
回历 (5) |
dd/mm/yy hh:mi:ss:mmmAM |
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 121): 2006
对上面进行动态生成字符串:
declare @count nvarchar(100);
set @sql1 = 'SELECT CONVERT(varchar(100), GETDATE(), 0)'
set @sql2 = 'SELECT @count = CONVERT(varchar(100), GETDATE(), 0)'
exec sp_executesql @sql2,N'@count nvarchar(50) out',@count out
print @sql1 +':'+ @count
DECLARE @myval decimal (5, 2)
SET @myval = 193.57
SELECT CAST(CAST(@myval AS varbinary(20)) AS decimal(10,5))
-- Or, using CONVERT
SELECT CONVERT(decimal(10,5), CONVERT(varbinary(20), @myval))
--输出193.57000
--输出193.57000
select substring(CONVERT(varchar(15),字段名),11,9) from 表名
select substring(cast(字段名 as varchar(50),6,9)) from 表名
SQL中的相除
SELECT CASE WHEN ISNULL(A+B,0)<>0 THEN
LTRIM(CONVERT(DEC(18,2),A*100.0/(A+B)))+'%' ELSE '' END AS '百分数'
FROM TB
select
LTRIM(CONVERT(DEC(18,2),42*100.0/96))+'%' AS '百分数string' ,--DEC=decimal
CONVERT(decimal(10,2),42*100.0/96) AS '百分数dec', --100 与 100.0是不一样的
CONVERT(decimal(10,2),42*100/96) AS '没有保留到小数点'
--from Tb
order by 百分数dec desc
--43.75% 43.75 43.00
--方法二:
Select (Convert(varchar(50),Round(42*100.0/96,3))+'%') as 百分比 --from A
--43.750000%
四舍五入
function 必须为 tinyint、smallint 或 int。
如果省略 function 或其值为 0(默认值),则将舍入 numeric_expression。
如果指定了0以外的值,则将截断 numeric_expression。*/
SELECT ROUND(150.45648, 2);--保留小数点后两位,需要四舍五入
SELECT ROUND(150.45648, 2, 0);--保留小数点后两位,0为默认值,表示进行四舍五入
SELECT ROUND(150.45648, 2, 1);--保留小数点后两位,不需要四舍五入,这里除0以外都是有同样的效果
SELECT ROUND(150.45648, 2, 2);--保留小数点后两位,不需要四舍五入,这里除0以外都是有同样的效果
--150.46000
--150.45000
--150.45000
--150.45000
对字段出现NULL值的处理
--case
select case when '字段名' is null then '\N' else convert(varchar(20),'字段名') end as 'NewName'
select case when null is null then '\N' else convert(varchar(20),null) end as 'NewName'
--SQL Server 2005:coalesce
select coalesce('字符串类型字段','\N') as 'NewName'
select coalesce(convert(varchar(20),'非字符串类型字段'),'\N') as 'NewName'
select coalesce(convert(varchar(20),null),'\N') as 'NewName'
--coalesce,返回其参数中的第一个非空表达式
select Coalesce(null,null,1,2,null)union
select Coalesce(null,11,12,13,null)union
select Coalesce(111,112,113,114,null)
count的几种情况
select count(*) from tablename
--第二种
select count(ID) from tablename
--第三种,1换成其它值也是可以的
select count(1) from tablename
/*
--第四种,这个不存在性能问题
idint 表ID(如果 indid = 0 或255)。否则为索引所属表的ID
Indid smallint 索引ID:
0=表
1=聚簇索引
>1=非聚簇索引
255=具有text或image数据的表条目。
rows int 基于indid=0 和 indid=1地数据级行数,该值对于indid>1重复。如果indid=255,rows设置为0。
当表没有聚簇索引时,Indid = 0 否则为 1。
*/
select rows,indid from sysindexes where id = object_id('tablename') and indid in (0,1)
查看数据库缓存的SQL
use master
declare @dbid int
Select @dbid = dbid from sysdatabases where name = 'Test'--修改成数据库的名称
select
dbid,UseCounts ,RefCounts,CacheObjtype,ObjType,
DB_Name(dbid) as DatabaseName,SQL
from syscacheobjects
where dbid=@dbid
order by dbid,useCounts desc,objtype
删除计划缓存
DBCC FREEPROCCACHE
--删除某个数据库的计划缓存
USE master
DECLARE @dbid INT
SELECT @dbid=dbid FROM sysdatabases WHERE NAME = '表名'
DBCC FLUSHPROCINDB (@dbid)
导出时加入特殊字符
情况一:全部字段都需要加字符,在这里设置【文本限定符】就可以了。
情况二:
SELECT
[ID]
,''''+convert(varchar(25),[ts],121)+'''' as [ts]
,''''+convert(varchar(25),[otherParty],121)+'''' as [otherParty]
,''''+convert(varchar(25),[StartTime],121)+'''' as [StartTime]
,[CcCause]
,[RrCause]
FROM [表]
效果:74983006,'2010-03-09 23:59:10.000'
TRUNCATE TABLE [Table Name]
下面是对Truncate语句在MSSQLServer2000中用法和原理的说明:
Truncate是SQL中的一个删除数据表内容的语句,用法是:
Truncate table 表名 速度快,而且效率高,因为:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
其它
dbcc memorystatus
--查看哪个引起的阻塞,blk
EXEC sp_who active
--查看锁住了那个资源id,objid
EXEC sp_lock
--当前查询分析器SPID
--查询分析器的状态栏中可以看到
--比如sa(57),这就表示当前查询分析器SPID为57,这样在使用profile的时候就可以指定当前窗体进行监控
发表评论
-
删除数据库表中重复的数据
2011-09-02 14:16 829--用过滤好的数据创建临时表 create table te ... -
SQLSERVER 和ORACLE数据类型对应关系详解 和对应表格 整理
2011-07-07 15:17 1418Oracle SQLServer 比较 SQLS ... -
使用PL/SQL将excel数据导入oracle
2011-07-07 09:30 1436使用plsql developer PL/SQL Devel ... -
Oracle中根据表查询对应的主键
2011-07-06 17:35 842select a.constraint_name, a.col ... -
Oracle数据库系统视图USER_TAB_COLS和USER_TAB_COLUMNS的区别
2011-05-17 10:35 1635视图SYS.USER_TAB_COLS和SYS.USER_TA ... -
使用存储过程清空oracle中所有的表的数据
2011-05-17 09:42 2329create or replace procedure del ...
相关推荐
7. **用户界面**:虽然这里提到的是一个.exe可执行文件,但通常这样的工具可能还包含一个简单的用户界面,用于选择要合并的文件、设置输出文件名等。 8. **版本控制**:在团队协作环境中,使用版本控制系统如Git...
"Excel生成SQL脚本"这个主题涉及到如何利用Excel的功能来自动化创建SQL语句,这对于数据库管理员和数据分析师来说是一个非常实用的技巧。 首先,我们需要理解表结构说明。在“表结构说明及SQL生成文档.xls”中,...
安装和使用这个工具通常只需要简单的步骤:下载文件,双击运行,然后导入需要执行的SQL脚本。用户界面应该提供选项来配置执行参数,如执行顺序、是否记录日志等。 总的来说,SQLServer脚本批量执行工具是数据库管理...
本话题将详细讲解一个简单的SQL循环语句脚本及其相关知识。 一、SQL循环语句概述 SQL循环语句主要包括WHILE循环和FOR循环,它们允许我们在满足特定条件时重复执行一段代码块。在PL/SQL和T-SQL中,还有BEGIN-END...
接下来,我们将通过一个简单的示例来演示如何使用PowerDesigner完成从CDM到PDM再到SQL脚本的转换过程: 1. **打开PowerDesigner并新建CDM**: - 打开PowerDesigner软件,选择`File > New`创建新的CDM项目。 - 在...
"使用codesmith生成sql脚本的模板,通过设置简单的属性即可"这句话表明,CodeSmith提供了一种简便的方式来配置模板属性。这些属性可能包括数据库连接信息、表名、列名等,开发者只需在模板中指定这些属性,CodeSmith...
SQL脚本,简单来说,是一系列预定义的SQL命令集合,用于执行特定任务,比如创建表、插入数据、更新记录或执行复杂的数据库操作。"help.sql"脚本,正如其名,旨在为用户在使用SQL过程中提供帮助,尤其在安装和配置...
SQL脚本文件合并工具是一个专门设计来帮助数据库管理员和开发者高效整合多个SQL脚本的实用程序。这种工具通常能够极大地简化数据库更新、迁移或备份的过程,尤其是在处理大量独立的SQL语句或者脚本时。 标题中的...
在.NET框架中,有时我们需要执行SQL脚本来完成数据库的初始化、数据迁移或其他数据库操作。本文将探讨如何使用C#语言通过调用操作系统命令(CMD)来执行osql工具,从而实现对SQL Server数据库的SQL脚本执行。 osql...
SQLBatch Runner是面向SQL Server设计的SQL脚本批量执行工具,通过简单的点击鼠标,即可方便的在多个SQL Server实例上运行多个脚本,并且记录详细的执行日志,提供事务保护,将多脚本执行任务变得高效、可控、易于...
该工具用于Sql的脚本的合并:用法,打开后,指定一个目录:会把该目录下面所有扩展名为.sql...该工具实现功能很简单,但做为一个工具是很有用的,表结构的脚本,你可以va_aaaAlterTable.sql命名,这样就排在第一位了。
一个简单的行政区划表创建SQL脚本可能如下所示: ```sql CREATE TABLE areacode ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, parent_id INT, level ENUM('COUNTRY', 'PROVINCE', 'CITY'...
这是一个简单的示例,展示如何创建数据库和执行SQL脚本: ```csharp using System; using System.Data.SqlClient; using System.IO; public class DatabaseManager { public static void ...
比如对于在安装过程中连接数据库并执行SQL脚本这样的需求,使用InstallShield应该会简单地多,而Inno却不支持直接操作数据库,并且相关的资料说明少之又少,还不如NSIS丰富,以至于我踏破铁鞋无觅处,最终却在NSIS的...
SQL脚本生成器是一款高效实用的工具,专为程序员设计,用于快速生成与数据库交互的SQL语句。这款工具的特点是其绿色免安装,这意味着你可以...只需几步简单的操作,即可自动生成高质量的SQL脚本,大大提升了开发效率。
PowerDesigner是一款强大的数据库设计工具,它能够帮助数据库管理员和开发者进行数据建模、数据库设计以及生成SQL脚本等工作。在数据库开发过程中,PowerDesigner扮演着重要角色,它提供了概念数据模型(CDM)、物理...
生成数据库脚本的生成工具,简单易用,无需安装!
这个“简陋小工具”可能是指其界面或功能相对简单,但核心功能——即生成SQL测试脚本——已经具备。工具的主要目标是在抢分时(可能是指在高并发或限时场景下)为测试环境提供支持。 描述中特别指出,此工具目前只...
标题提到的"C#使用server执行SQL脚本所需DLL"主要指的是C#程序中调用SQL Server的管理对象(SMO,SQL Server Management Objects)来执行SQL脚本。下面将详细介绍这一技术及其背后的原理。 SMO是Microsoft提供的一...
通过使用SQL Server 脚本导出器,你可以轻松地将整个数据库或特定的表的结构和数据转换为SQL脚本,这在数据库的备份、恢复、复制或迁移场景中非常有用。 "数据信息变成Sql插入语句"是该工具的核心特性。SQL插入语句...