简单实用SQL脚本Word下载.docx

上传人:b****5 文档编号:18735487 上传时间:2022-12-31 格式:DOCX 页数:14 大小:73.22KB
下载 相关 举报
简单实用SQL脚本Word下载.docx_第1页
第1页 / 共14页
简单实用SQL脚本Word下载.docx_第2页
第2页 / 共14页
简单实用SQL脚本Word下载.docx_第3页
第3页 / 共14页
简单实用SQL脚本Word下载.docx_第4页
第4页 / 共14页
简单实用SQL脚本Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

简单实用SQL脚本Word下载.docx

《简单实用SQL脚本Word下载.docx》由会员分享,可在线阅读,更多相关《简单实用SQL脚本Word下载.docx(14页珍藏版)》请在冰豆网上搜索。

简单实用SQL脚本Word下载.docx

Q3 

Q4 

int)

test2 

1000,2000,4000,5000)

3000,3500,4200,5500)

test2

--列转行

id,name,quarter,profile

unpivot

profile

([Q1],[Q2],[Q3],[Q4])

) 

unpvt

sql替换字符串substringreplace

--例子1:

update 

tbPersonalInfo 

set 

TrueName 

replace(TrueName,substring(TrueName,2,4),'

**'

where 

ID 

1

--例子2:

Mobile 

replace(Mobile,substring(Mobile,4,11),'

********'

--例子3:

Email 

replace(Email,'

chinamobile'

'

******'

 

SQL查询一个表内相同纪录having

如果一个ID可以区分的话,可以这么写

表 

in 

group 

by 

having 

sum

(1)>

1)

如果几个ID才能区分的话,可以这么写

ID1+ID2+ID3 

(select 

ID1,ID2,ID3 

其他回答:

数据表是zy_bho,想找出ZYH字段名相同的记录

--方法1:

SELECT 

*FROM 

zy_bho 

WHERE 

EXISTS 

(SELECT 

FROM 

[PK] 

<

>

a.[PK] 

AND 

ZYH 

a.ZYH) 

--方法2:

a.* 

join 

on 

(a.[pk]<

b.[pk] 

and 

a.zyh=b.zyh) 

--方法3:

zy_bbo 

zyh 

count(zyh)>

1) 

--其中pk是主键或是 

unique的字段。

把多行SQL数据变成一条多列数据,即新增列

Select

DeptName=O.OUName,

'

9G'

=Sum(Case 

When 

PersonalGrade=9 

Then 

Else 

End),

8G'

PersonalGrade=8 

7G4'

PersonalGrade=7 

JobGrade 

=4 

7G3'

=3 

6G'

PersonalGrade=6 

5G3'

PersonalGrade=5 

5G2'

=2 

4G'

PersonalGrade=4 

3G2'

PersonalGrade=3 

3G1'

=1 

2G'

PersonalGrade=2 

1G'

PersonalGrade=1 

--'

未定级'

PersonalGrade=NULL 

End) 

表复制

PhoneChange_Num 

([IMSI],Num)

[IMSI]

count([IMEI]) 

num

[Test].[dbo].[PhoneChange] 

[IMSI] 

order 

num 

desc 

语法1:

InsertINTOtable(field1,field2,...)values(value1,value2,...)

语法2:

InsertintoTable2(field1,field2,...)selectvalue1,value2,...fromTable1(要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。

语法3:

SELECTvale1,value2intoTable2fromTable1(要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。

语法4:

使用导入导出功能进行全表复制。

如果是使用【编写查询以指定要传输的数据】,那么在大数据表的复制就会有问题?

因为复制到一定程度就不再动了,内存爆了?

它也没有写入到表中。

而使用上面3种语法直接执行是会马上刷新到数据库表中的,你刷新一下mdf文件就知道了。

利用带关联子查询Update语句更新数据

Update 

Table1 

Table2 

Table1.a) 

is 

null 

A

newqiantity=B.qiantity

A,B

A.bnum=B.bnum 

update

A.bnum 

A.newqiantity,B.qiantity 

left 

A.bnum=B.bnum) 

AS 

C

C.newqiantity 

C.qiantity

C.bnum 

=XX 

连接远程服务器

openrowset('

SQLOLEDB'

server=192.168.0.67;

uid=sa;

pwd=password'

BCM2.dbo.tbAppl'

192.168.0.67'

;

sa'

password'

Date和Time样式

不带世纪数位(yy)

(1)

带世纪数位(yyyy)

标准

输入/输出(3)

-

0或100(1,2)

默认

monddyyyyhh:

miAM(或PM)

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)

ddmonyy

7

107

(1)

mondd,yy

8

108

hh:

mi:

ss

9或109(1,2)

默认设置+毫秒

ss:

mmmAM(或PM)

10

110

mm-dd-yy

11

111

日本

yy/mm/dd

12

112

ISO

yymmdd

yyyymmdd

13或113(1,2)

欧洲默认设置+毫秒

ddmonyyyyhh:

mmm(24h)

14

114

20或120

(2)

ODBC规范

yyyy-mm-ddhh:

ss(24h)

21或121

(2)

ODBC规范(带毫秒)

ss.mmm(24h)

126(4)

ISO8601

yyyy-mm-ddThh:

ss.mmm(无空格)

127(6,7)

带时区Z的ISO8601。

yyyy-mm-ddThh:

ss.mmmZ

(无空格)

130(1,2)

回历(5)

mmmAM

131

(2)

dd/mm/yyhh:

--语句及查询结果:

CONVERT(varchar(100), 

GETDATE(), 

0):

05 

16 

2006 

10:

57AM

1):

05/16/06

2):

06.05.16

3):

16/05/06

4):

16.05.06

5):

16-05-06

6):

06

7):

16, 

8):

57:

46

9):

46:

827AM

10):

05-16-06

11):

06/05/16

12):

060516

13):

937

14):

967

20):

2006-05-16 

47

21):

47.157

22):

05/16/06 

47 

AM

23):

2006-05-16

24):

25):

47.250

100):

101):

05/16/2006

102):

2006.05.16

103):

16/05/2006

104):

16.05.2006

105):

16-05-2006

106):

2006

107):

108):

49

109):

49:

437AM

110):

05-16-2006

111):

2006/05/16

112):

20060516

113):

513

114):

547

120):

121):

对上面进行动态生成字符串:

declare 

@sql1 

nvarchar(200),@sql2 

nvarchar(200)

@count 

nvarchar(100);

0)'

@sql2 

exec 

sp_executesql 

@sql2,N'

nvarchar(50) 

out'

@count 

out

print 

+'

@count

--SQL 

Server 

仅保证往返转换(即从原始数据类型进行转换后又返回原始数据类型的转换)在各版本间产生相同值。

DECLARE 

@myval 

decimal 

(5, 

2)

SET 

193.57

CAST(CAST(@myval 

varbinary(20)) 

decimal(10,5))

-- 

Or, 

using 

CONVERT

CONVERT(decimal(10,5), 

CONVERT(varbinary(20), 

@myval))

--输出193.57000

--bigint数据类型的字段截取(其它类型也一样)

substring(CONVERT(varchar(15),字段名),11,9) 

表名

substring(cast(字段名 

varchar(50),6,9)) 

SQL中的相除

--SQL中的相除

CASE 

WHEN 

ISNULL(A+B,0)<

THEN 

LTRIM(CONVERT(DEC(18,2),A*100.0/(A+B)))+'

%'

ELSE 

END 

百分数'

TB 

--百分比的不同格式

LTRIM(CONVERT(DEC(18,2),42*100.0/96))+'

百分数string'

--DEC=decimal

CONVERT(decimal(10,2),42*100.0/96) 

百分数dec'

 

--100 

与 

100.0是不一样的

CONVERT(decimal(10,2),42*100/96) 

没有保留到小数点'

--from 

Tb

百分数dec 

desc

--43.75% 

43.75 

43.00

--方法二:

Select 

(Convert(varchar(50),Round(42*100.0/96,3))+'

百分比 

--43.750000%

四舍五入

/*ROUND 

( 

numeric_expression 

length 

function 

function 

必须为 

tinyint、smallint 

或 

int。

如果省略 

或其值为 

0(默认值),则将舍入 

numeric_expression。

如果指定了0以外的值,则将截断 

*/

ROUND(150.45648, 

2);

--保留小数点后两位,需要四舍五入

2, 

0);

--保留小数点后两位,0为默认值,表示进行四舍五入

1);

--保留小数点后两位,不需要四舍五入,这里除0以外都是有同样的效果

--150.46000

--150.45000

对字段出现NULL值的处理

--判断某些字段是否为空

--case

case 

when 

字段名'

then 

\N'

else 

convert(varchar(20),'

end 

NewName'

convert(varchar(20),null) 

2005:

coalesce

coalesce('

字符串类型字段'

coalesce(convert(varchar(20),'

非字符串类型字段'

),'

coalesce(convert(varchar(20),null),'

--coalesce,返回其参数中的第一个非空表达式

Coalesce(null,null,1,2,null)union

Coalesce(null,11,12,13,null)union

Coalesce(111,112,113,114,null)

count的几种情况

--第一种

count(*) 

tablename

--第二种

count(ID) 

--第三种,1换成其它值也是可以的

count

(1) 

/*

--第四种,这个不存在性能问题

idint 

表ID(如果 

indid 

或255)。

否则为索引所属表的ID

Indid 

smallint 

索引ID:

0=表

1=聚簇索引

1=非聚簇索引

255=具有text或image数据的表条目。

rows 

int 

基于indid=0 

和 

indid=1地数据级行数,该值对于indid>

1重复。

如果indid=255,rows设置为0。

当表没有聚簇索引时,Indid 

否则为 

1。

rows,indid 

sysindexes 

id 

object_id('

tablename'

indid

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1