常用SQL语句

本文介绍了SQL语言中的多种实用技巧,包括数值运算、时间格式化、条件更新、数据筛选及格式转换等操作。此外还提供了查询优化及数据处理的示例。

 

Sql 语句中常用用法

1.  sql中可以用运算符号   +-*等。

例:update  test    set dMoney=dMoney*2        where  dMoney=50

说明:把test表中的dMoney值为50的变为原来的两倍

2.  sql中可以用format格式化时间字段

如:

Select      format(pDate ,’yyyymmdd’)  as 时间    from  test

说明:把test表中时间字段格式化并输出

输出结果:

时间

20070306

20080808

3.  要把表中的时间字段的值跟一个字符串比较,必须把表中的时间字段格式化为yyyymmdd形式。例:

“Select *  from  test   where   format(pDate,’yyyymmdd’)>=’” & strTime & “’ “

这为VB6的书写形式。(说明这样就可以把表中大于strTime时间的数据找出来了)

4.                update testUser.dbo.test

set dMoney=

case

when  dMoney>100 Then dMoney+50

when  dMoney<100 Then dMoney*2

end

       说明:该语句是把表中dMoney的值大于100的,增加50。小于100变为原来的2

该语句在sql server中已经运行通过

2update  panga

              Set e_wage=

              Case

              When  job_level=’1’  then   e_wage*1.08

              When  job_level=’2’  then   e_wage*1.07

              Else   e_wage*1.05

              End

5update testUser.dbo.test

set pDate=getdate()

where UserName='asf'

说明:把表中用户名为asf这条记录的时间的值该为当前时间

6select UserName='tang'

from testUser.dbo.test

说明:把表中所有UserName的值都显示tang,(数据表中UserName字段的值没有变)

7.等待1 小时2 分零3 秒后才执行SELECT 语句

       waitfor delay  '01:02:03'

select *

from testUser.dbo.test

8.等到晚上11 点零8 分后才执行SELECT 语句

waitfor time ’23:08:00’

select *

from testUser.dbo.test

9stockname like '% find this %'

stockname like '[a-zA-Z]%' --------- ([]指定值的范围)

stockname like '[^F-M]%' --------- (^排除指定范围)

10select 'dMoney+10'

=  dMoney+10 

from testUser.dbo.test

说明:把test表中的dMoney字段的值在原来值的基础上加10并显示出来。

       原表                 10后查询出来的结果

       dMoney               dMoney+10

21                                                                             31

22                                                                             32

23                                                                             33

11GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate()

12DateName()还可以获得到小时、时间、秒、星期几、第几周,分别如下:

                    Select Datename(hour,GetDate())

        Select Datename(minute,GetDate())

        Select Datename(second,GetDate())

        Select Datename(weekDay,GetDate())

Select Datename(week,GetDate())

13. 使用Convert()函数格式日期

         select convert(char(10),GetDate(),120) as Date

3个参数就是用来设置日期类型数据的显示样式的,下面介绍几种样式的参数:

               100   mm dd yyyy

               101   mm/dd/yyyy

               102   yyyy.mm.dd

               103   dd/mm/yyyy

               106   dd mm yyyy

               108   hh:mi:ss(时间)

               111   yyyy/mm/dd

               112   yyyymmdd

120   yyyy-mm-dd

14. a列分组后b列最大的所有列记录

test a b c

        1 5 abc

        2 6 bcd

        1 7 ade

2 8 adc

若取按a列分组后,b列最大,的所有列的记录:

        result a b c 

        1 6 bcd 

2 8 adc

可以使用如下语句:

select * from test where b in (select max(id) from test group by a)

15.把查询结果减去一个数

select Convert(int,Number)-2 from OrderGoods where ProductKey='37'

16 显示前5条数据

select  top 5 * from OrderGoods

17 select DATEADD(day ,3,UTime) from test  

说明:在当前字段的时间上加上3天。UTime为表中的一个字段

18 select DATEDIFF(day ,’2008-7-1’,UTime) from test 

说明:找出时间差

19 select DATENAEM(month,getdate()) 得到现在的月

    select DATENAEM(Day,getdate())  得到现在的号

select DATENAEM(year,getdate())  得到现在的年

20 select LEFT(UName ,9) from test 得到UName字段从左到右的9位数

21 select LEN(UName) from test 转换成大写

22 select LOWER(UName) from test 转换成小写

23 select Trim(UName) from test 去掉空格

24 复制表

       Select * into b from a

说明 a 新表名 b为源表名  b在数据库中不存在,运行时自动建立一张表

 

转载于:https://www.cnblogs.com/S-TGM/archive/2008/06/28/1231626.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值