sqlserver日积月累1

 
 
1.      1 将字符转化成日期:
select cast('2004-09-08' as datetime) value
 
2.      2 是将系统时间天数加一:
select dateadd(dd,1,getdate())
 
3.      3 下面是将前两个进行整合:
 select dateadd(dd,-1, cast('2004-09-08' as datetime) )value
4.      4子查询:
select aa_test1.subject_area from
(select * from aa_test) aa_test1
5:sqlserver的分页
select top 5 * from part
where partId not in
(select top 3 mt.partId from (select * from part) mt order by mt.partId)
 
5.      5.在sqlserver中实现oracle的decode功能:
 
SELECT MAPPING_ID,max(CASE WIDGET_TYPE WHEN 2 THEN INSTANCE_NAME END ) source_name,max(CASE WIDGET_TYPE WHEN 1 then instance_name end) target_name
from OPB_WIDGET_INST WHERE MAPPING_ID=2 GROUP BY MAPPING_ID
 
6.      6 实现时间到字符:
select convert(char(19),getdate(),20) value    得到:2007-06-07 20:20:20
select convert(char(19),getdate()) value       得到:带英语的字符
只取时分秒的字符:
select substring(convert(char(19),getdate(),20) ,12,8)value
7.      7 关于ORACLE的分区查询:
SELECT T.USAGE_EVENT_ID, T.USAGE_TYPE_ID, T.ACCOUNT_ID, T.SVC_INST_ID, T.SI_COMP_SEQ FROM
 BILL.T_USAGE_EVENTS_20070701
 PARTITION (LATN534)  T
 
而不是SELECT T.USAGE_EVENT_ID, T.USAGE_TYPE_ID, T.ACCOUNT_ID, T.SVC_INST_ID FROM
 BILL.T_USAGE_EVENTS_20070701  T
PARTITION (LATN534)
 
注意表名放在最后。
 
8.      8 关于sql的触发器:
 
 
创建:Create  TRIGGER [testtest] ON [dbo].[part1]
FOR delete
AS
   insert into partMapping values(2,9,3)
或者是:
修改:alter TRIGGER [testtest] ON [dbo].[part1]
FOR delete
AS
   insert into partMapping values(2,9,3)
 
也就是在执行delete 表part1时,自动执行这个trigger,但是不支持truncate
 
9.      sqlserver 实现与oracle回退功能一样的 两个表.
Inserted 和 deleted ,但是他们这两个表 是根据插入和删除数据的不同而里面的数据和数据类型不同.
 
―――――好像是不对。
10. 实现和oracle相同的sequence 序列号的功能.
Identity (1,1)
create table bb ( tt int identity (1,1),bb char)
insert into bb (bb) values ('a')
select * from bb 得到 结果,    就是不用插入那个自增的字段.
1 ,a

 
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值