1.复杂的sql语句怎么写
1、select * from 表 where year(列名) = year(getdate())-1 and month(列名)= 3 --这个比较容易理解,就不解释了
2、select datepart(wk,dateadd(year,-1,getdate())) -- 去年的今天是去年的第几周
select datepart(wk,dateadd(day,1-day(dateadd(year,-1,getdate())),dateadd(year,-1,getdate()))) -- 去年的本月的1号是去年的第几周
select datepart(wk,dateadd(year,-1,getdate())) - datepart(wk,dateadd(day,1-day(dateadd(year,-1,getdate())),dateadd(year,-1,getdate()))) --上边两者相减就是去年的今天是去年本月的第几周
2.复杂的sql语句怎么写
1、select * from 表 where year(列名) = year(getdate())-1 and month(列名)= 3 --这个比较容易理解,就不解释了2、select datepart(wk,dateadd(year,-1,getdate())) -- 去年的今天是去年的第几周select datepart(wk,dateadd(day,1-day(dateadd(year,-1,getdate())),dateadd(year,-1,getdate()))) -- 去年的本月的1号是去年的第几周select datepart(wk,dateadd(year,-1,getdate())) - datepart(wk,dateadd(day,1-day(dateadd(year,-1,getdate())),dateadd(year,-1,getdate()))) --上边两者相减就是去年的今天是去年本月的第几周。
3.这么复杂的sql语句怎么写呀
SELECT 编号FROM ( SELECT * FROM 表1 UNION ALL SELECT * FROM 表2 UNION ALL SELECT * FROM 表3 -- 这里假如不需要 表3, 那么可以不加在 UNION ALL 里面。
) AS tmpViewWHERE 日期 >= 开始时间 AND 日期 <= 结束时间 AND 性别= 某一性别 AND 人员类型 IN ( 一种人员类型、两种人员类型或者多种人员类型 )GROUP BY IDHAVING COUNT(ID) = 1。
4.一个复杂的sql 语句
汗一个,我用一个sql实现了,在Sql2005下测试通过:
DECLARE @key NVARCHAR(MAX);
SET @key = '中';--要搜索的关键词
SELECT CASE
WHEN t IS NULL THEN N'(' + @key + N')' + SUBSTRING(k, LEN(@key) + 1, LEN(k))
ELSE N'(' + t + N')' + SUBSTRING(k, LEN(t) + 1, LEN(k))
END
FROM (
SELECT k,
(
SELECT TOP 1 k
FROM 关键词表 a1
WHERE a2.k LIKE a1.k + '%'
) t
FROM 内容表 a2
WHERE k LIKE @key + '%'
) a
如果用一条sql实现,很困难,建议用存储过程实现
或用程序去实现
5.SQL存储过程怎么写这样套复杂的写法.
create proc proc1
@B1 int,@B2 int,@ID int output
as
declare @K1 int,@K2 int,@K3 varchar(20)
begin
exec proc2 @K1,@K2,@K3 output --@K3输出参数 就是你的tablename
select @ID=ID from @K3 where B1=@B1 and B2=@B2
end
你提供的不详细 我只能写个思路给你。。 调用proc1存储过程先调用proc2传出一个表名 然后根据传入的参数输出这个表名的ID字段。