34,588
社区成员
发帖
与我相关
我的任务
分享
select * from [table] where Field='a' and Field2>'2012-2-1'
union all
select * from [table] where Field1='c' and Fied3 between '2012-1-1' and '2012-5-1'
union all
select * from [table] where Field2>'2012-1-1' and Field!='a' and Field!='c'
case when 可以用在 SELECT 、WHERE 、ORDER BY 后面
select * from [table] where Field='a' and Field2>'2012-2-1'
union all
select * from [table] where Field1='c' and Fied3 between '2012-1-1' and '2012-5-1'
union all
select * from [table] where Field2>'2012-1-1'
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')
BEGIN
DROP TABLE tba
END
GO
CREATE TABLE tba
(
Field1 VARCHAR(10),
Field2 VARCHAR(10)
)
GO
INSERT INTO tba
SELECT 'A', '2012-01-01' UNION
SELECT 'B', '2012-02-01' UNION
SELECT 'C', '2012-03-01' UNION
SELECT 'D', '2012-04-01'
GO
select * from tba
where Field2 BETWEEN CASE when Field1 ='A' then '2012-02-01'
else '2012-01-01' end AND CASE WHEN Field1 = 'C' THEN '2012-05-01'
ELSE Field2 END
/*
Field1 Field2
B 2012-02-01
C 2012-03-01
D 2012-04-01
*/
where
(Field='a' and Field2>'2012-2-1')
or
(Field1='c' and Fied3 between '2012-1-1' and '2012-5-1')
or
(Field2>'2012-1-1')