SQL编程

–显示结果为97,说明隐式转换成字符串了

–SQRT
开根号

declare @ch varchar(90) set @ch=’a’+97 print @ch

–获取年月日 year month day
select
year(‘1999-1-1’);

–输出结果为:将 varchar 值 ‘a’ 转换为数据类型为 int
的列时发生语法错误。为什么不先把数字97转换成字符串,然后再与‘a’连接呢,是不是因为97在前,sqlserver所以尝试这么作呢?换一下位置看看

set @a
=10;

set @b
=5;

declare @i int set @i=’a’ set @i=cast(‘a’ as int) set @i=convert(int,
‘a’) print @i –输出结果为:将 varchar 值 ‘a’ 转换为数据类型为 int
的列时发生语法错误。这一点与java不一样

select
@a –直接打印在结果框中

set @a
= 10 –也是赋值,不打印

declare @ch varchar(90) set @ch=97 print @ch

–space()
里面放几个数字,就打印出来几个空格

declare @ch varchar(90) set @ch=97+’a’ print @ch

查汽车表中名称含有宝马两个字的
declare
@name varchar(20)

set
@name=’宝马’

select
* from car where Name like ‘%’+@name+’%’

–输出结果为:将 varchar 值 ‘a’ 转换为数据类型为 int
的列时发生语法错误。不明白sqlserver为什么总是先要把‘a’转换为数字而导致失败。

注意:语句结束之后不要写分号或逗号

–len,长度
select
len(‘aaaaaa’); 返回几个长度

–返回星期几
datename,返回的值是字符串

select
datename(weekday,’2000-1-1′);

查汽车表中所有汽车的平均值并输出
declare
@price decimal(10,4)

select
@price = AVG(Price) from Car

print
‘所有汽车的平均价格为:’+cast(@price as varchar(20))

while
@i<=10

begin
print
@str + cast (@i as varchar(20))

set @i
= @i + 1

end

–派
PI(),圆周率,括号里不需要加东西

–转换大写 upper
select
upper(pic) from car;

sysdatetime()
获取数据库服务的时间戳

–字符串转换函数 str
select
str(1.567,3,1);

把1.567转换成字符串,最多留3位,小数点算一位,保留小数点后1位

select
‘ 123123 ‘ 可以不查数据,直接这样显示出来

 

–replace 替换
select
replace(‘aaaaabbaaaaa’,’bb’,’haha’);把第一个字符串中的bb替换成haha

–转换小写 lower

declare
@str varchar(20)

set
@str = ‘你好’

declare
@i int

set @i
= 1

1.数学函数:操作一个数据,返回一个结果

–取上限ceiling
select
code,name,ceiling(price) from car ;

case
–switch…case的开头

when
@ccname=’宝马’ then ‘%宝马%’

when
@ccname=’奥迪’ then ‘%奥迪%’

else
‘%’

end
–switch…case的结尾

C#里的Switch case
变形到数据库里用法

–SQUARE 平方,乘以自己

–判断日期是否正确,isdate
返回bit

select
isdate(‘2000-2-31’)返回bit类型,false是0,true是1

whie(条件)
{

循环体

}

–reverse 翻转
select
reverse(‘abc’); 结果是 cba