常用sql语句收集

上一篇 / 下一篇  2012-12-14 13:46:46 / 个人分类:Oracle

(转)在测试中遇到的一些sql语句的用法,有扩充以后再补充……

1.      不显示表中重复的字段

select  *  from    group  by  分组字段  having  count(分组字段)=1

2.      时间查询

select*fromdepartment

wherecreated_time 

betweento_date('2012/4/5','yyyy/mm/dd')

andto_date('2012/4/6','yyyy/mm/dd')

或者:

列名= to_date('2012-5-21 9:38:52', 'yyyy-mm-dd hh24:mi:ss')

3.      获取当前系统时间

selectCONVERT(varchar(50),getdate(),120)

格式:2012-06-01 14:30:12

selectCONVERT(varchar(50),getdate(),23)

格式:2012-06-01

SelectCONVERT(varchar(100),GETDATE(),101)

格式:05/16/2008

SelectCONVERT(varchar(100),GETDATE(),102)

格式:2008.05.16

SelectCONVERT(varchar(100),GETDATE(),103)

格式:16/05/2008

SelectCONVERT(varchar(100),GETDATE(),20)

格式:2012-06-01 14:36:40

SelectCONVERT(varchar(100),GETDATE(),24)

格式:14:37:48

SelectCONVERT(varchar(100),GETDATE(),8)

格式:14:39:28

4.      获取数据库表中为时间类型的数据与当前时间的时间差值

select datediff(s,voteTime,getdate()) from voter

select datediff(时间类型,表字段,getdate()) from表名)

s代表秒,voteTime是数据表中类型为时间的字段,getdate()获取当前时间

时间类型可以为(年:yy    月:m 日:d 时:hourhh 分:minute   秒:s

5.      数据类型转换

例:将时间类型转换成int

方法1selectcast(createtimeasint)fromdbo.CaseHandle

方法2selectconvert(int,createtime)fromdbo.CaseHandle

其中createtime为表中字段,dbo.CaseHandle为表名

6.      Oracle截取字符串的函数

语法:substr(string,start_position,[length])

其中string:字符串值;start_position:截取字符串的初始位置,number型,start_position为负数时,表示从字符串右边开始数起;length:截取位数,number型;其中length为可选,如果length为空(即不填)则返回start_position后面的所有字符,意思就是从start_position开始,取出length个字符并返回取出的字符串。

示例:select substr(‘this is atest’,6,2) from dual返回的结果是“is

7.      连接某列值

例:

CREATEFUNCTION[dbo].[F_Str_DepictStr](@idVARCHAR(32))

RETURNSvarchar(500)

AS

BEGIN

   DECLARE@strvarchar(500)

   SET@str=''

   SELECT@str=@str+','+DepictStr

   FROMCaseDescripition

   WHERECaseId=@id

   RETURNSTUFF(@str,1,1,'')

END

GO

运行:将相同IDDepictStr连接在一起

SELECTCaseId,DepictStr=dbo.F_Str_ResultStr(CaseId)

          FROMCaseDescripitionGROUPBYCaseId

8.      递归查询的用法

语法:select * from表名where条件1 start with条件2 connect by prior当前表字段=级联表字段

例:

selectd.device_name,c.company_namefromdevice d

leftjoincompany_info conc.pkid=d.company_id

whered.company_idin(selectpkidfromcompany_infostartwithpkid=5

connectbysuperior_company=priorpkid)



TAG:

心与梦的会晤的个人空间 引用 删除 秋爽   /   2012-12-17 09:54:02
5
引用 删除 sunmeng123   /   2012-12-14 14:19:08
很受用
 

评分:0

我来说两句

日历

« 2024-03-29  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 151289
  • 日志数: 33
  • 建立时间: 2012-06-27
  • 更新时间: 2013-04-02

RSS订阅

Open Toolbar