常用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在数据库中不存在,运行时自动建立一张表

 

posted @ 2008-06-28 15:15  绿色心情  阅读(256)  评论(0)    收藏  举报