怎么写复杂的SQL

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语句怎么写【怎么写复杂的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 [email protected]输出参数 就是你的tablename
select @ID=ID from @K3 where [email protected] and [email protected]
end
你提供的不详细 我只能写个思路给你 。。调用proc1存储过程先调用proc2传出一个表名 然后根据传入的参数输出这个表名的ID字段 。

怎么写复杂的SQL

文章插图