SQL研究(MS-SQL)之一:筛选数据
来源:互联网 发布:sql partition by 编辑:程序博客网 时间:2024/06/05 01:19
摘抄自论坛资源:http://topic.csdn.net/u/20081023/13/6d3b2fd6-39fa-4efe-9fd2-d1ea11b08091.html
要求如下:
=================================================
Table1
字段1 字段2
1001 TRUE
1003 FALSE
1006 FALSE
1002 TRUE
1002 FALSE
1004 FALSE
Table2
字段1 字段2
1003 FALSE
1006 FALSE
1004 FALSE
也就是从表1中筛选出字段2从来没有为TRUE的记录
=================================================
实现:
方法1:(临时表,生成于tempdb下,查询分析器下可以查看到)
- --> 生成测试数据: #T
- IF OBJECT_ID('tempdb.dbo.#T') IS NOT NULL DROP TABLE #T
- CREATE TABLE #T (字段1 INT,字段2 VARCHAR(5))
- INSERT INTO #T
- SELECT 1001,'TRUE' UNION ALL
- SELECT 1003,'FALSE' UNION ALL
- SELECT 1006,'FALSE' UNION ALL
- SELECT 1002,'TRUE' UNION ALL
- SELECT 1002,'FALSE' UNION ALL
- SELECT 1004,'FALSE'
- --SQL查询如下:
- SELECT *
- FROM #T AS t
- WHERE NOT EXISTS
- (
- SELECT *
- FROM #T
- WHERE 字段1=t.字段1
- AND 字段2='True'
- )
- /*
- 字段1 字段2
- ----------- -----
- 1003 FALSE
- 1006 FALSE
- 1004 FALSE
- (3 行受影响)
- */
方法2:
- declare @tb table(f1 int, f2 varchar(5))
- insert @tb
- SELECT 1001, 'TRUE' UNION ALL
- SELECT 1003, 'FALSE' UNION ALL
- SELECT 1006, 'FALSE' UNION ALL
- SELECT 1002, 'TRUE' UNION ALL
- SELECT 1002, 'FALSE' UNION ALL
- SELECT 1004, 'FALSE'
- select * from @tb as a where not exists(select 1 from @tb where f1=a.f1 and f2='TRUE')
- /*
- f1 f2
- ----------- -----
- 1003 FALSE
- 1006 FALSE
- 1004 FALSE
- */
- SQL研究(MS-SQL)之一:筛选数据
- SQL筛选重复数据
- sql筛选重复数据
- MS SQL数据操作
- MS SQL数据导入MySQL
- MS SQL 数据插入access
- MS SQL数据批量备份还原(适用于MS SQL 2005+)
- SQL研究(MS-SQL)之二:分组显示
- SQL 有条件地筛选重复数据
- sql Server 筛选重复的数据。
- SQL 筛选出最新一条数据
- 获取MS SQL库数据字典
- 通过日志恢复MS SQL数据案例
- Ms SQL 数据导入 MySQL 工具
- 通过日志恢复MS SQL数据案例
- 通过日志恢复MS SQL数据案例
- ms sql 批量导入文本数据
- MS SQL 监控数据/日志文件增长
- 我得软件人生-中转站
- 最近在读Essential C++
- 来个正经的
- select参数
- Memset Memcpy strcpy
- SQL研究(MS-SQL)之一:筛选数据
- Delphi基础学习
- C#生成随机颜色
- (教學)VC 建立 arm - linux 編譯環境。
- 最危险的域名?
- 请问如何取出_variant_t中的llval即 longlong 值?
- SilverLight 2 初体验
- VB 关闭其它窗口
- 批量读取文件