如何基于列值条件从现有表创建符合特定要求的新SQL表?
解决方案
你可以通过调整WHERE子句的逻辑条件实现精准筛选,核心是把不同Tier的规则拆分开用逻辑运算符组合:
SELECT * INTO Table1 FROM Table_v2 WHERE CreatedDate >= DATEFROMPARTS(YEAR(GETDATE()), 1, 1) -- 精准筛选今年的数据(当年1月1日至今) AND ( Tier IN ('1', '2') -- 保留Tier为1、2的全部行 OR (Tier = '3' AND [Type Of Check] = 'Quality') -- Tier为3时仅保留Type Of Check为Quality的行 );
逻辑说明:
- 用
DATEFROMPARTS(YEAR(GETDATE()), 1, 1)替代Date()-365,能精准匹配自然年的数据,避免闰年或跨年度的计算误差。 - 括号内的分组逻辑确保只有两种情况会被选中:要么是Tier1/2且日期符合,要么是Tier3且同时满足日期要求和Type Of Check为Quality的条件。
内容的提问来源于stack exchange,提问作者catman
相关产品推荐
相关产品推荐

