1. 类型转换
convert( 类型,值或字段)
如:update Merop_Menu Set M_ShtmlPath='/Html/Menu/'+ convert( varchar,M_ID) ,M_ShtmlName = 'Index.html'
2. 日期差
datediff( day/month/year, 值或字段 , 值或字段 )
--- getdate() 获得当前时间,
--- day 获得的是天数
--- month 获得的是月数
--- year 获得的是年数
3. 按时间顺序查询sql表中不重复记录
按发布时间倒序查询Message表中不重复用户发布的最新10条信息
SQL语句如下:
select TOP 10 m.* from message m where not exists(select 1 from message where [User_ID]=m.[User_ID] and Regtime>M.Regtime) order by m.regtime desc
-- exists与后面的sql查询语句返回的是一个bool值,True进执行前面的查询,反之不查询。
利用exists及存储过程判断记录是否存在例子
CREATE PROCEDURE P_Visit
(
@Visit varchar(20),
@State int output
)
AS
if not exists (Select * from [表] Where [Visit]=@Visit)
set @State=1
else
set @State=2
GO
分割字符串的方法:
select substring( DwtBox_DwtPath,21,len(DwtBox_DwtPath)+1 ) From Merop_DwtBox
If Else的用法
if exists (select UserName From Merop_ReNote Where N_ID=*** )
begin Select Top 1 (UserName+' '+ Convert(Varchar(16),RN_Addtime,120)) From Merop_ReNote Where N_ID=*** Order by RN_Addtime Desc end
else
begin select N_Addtime From Merop_Note Where N_ID=*** end
假设现在有如下N条记录 表明叫book
id author title
1 aaa AAA
2 bbb BBB
3 ccc CCC
4 ddd DDD
5 eee AAA
现在想从这5条记录中查询所有title不重复的记录
select distinct title,author from book这样是不可以的 因为distinct只能作用于一个字段
想请教应该怎么写
答案:
select a.* from book a right join (
select max(id) id from book group by title) b on b.id = a.id
where a.id is not null