表AID NAME
10 AAA
101 DDDD
1026 CCCC
...
20 BBB
201 SSS
2012 MMM
...
30 QDA
301 DQDF
30012 DWRGT
.......表B
id name
101 DDDD
201 CCCC
300 CDAF
4123 adsfsdaf
...
结果:取所有表A中 排除 '表B的id + %' 的记录
10 AAA
101 DDDD
1026 CCCC
...
20 BBB
201 SSS
2012 MMM
...
30 QDA
301 DQDF
30012 DWRGT
.......表B
id name
101 DDDD
201 CCCC
300 CDAF
4123 adsfsdaf
...
结果:取所有表A中 排除 '表B的id + %' 的记录
解决方案 »
- 多重排序?
- 用一条SQL语句 查询出每门课都大于80分的学生姓名,表(MarkList)如下:
- 急急急!!我的SQL语句哪里出错了???
- 有关建立分布式查询视图的问题:
- 郁闷啊,数据库老是c0000005严重异常导致自动关闭:(
- SQL2000有没类似windows的消息队列机制?
- sql2005下注册扩展存储过程问题???
- bak文件还原问题(菜鸟问题,大家别拍啊)
- 如何把SQL SERVER6.5的数据库改为SQL SERVER7.0的。是把6.5的数据改为7.0可以用的,谢谢!
- 求一个sql 语句。。。
- 联合查询后修改字段值的问题
- 如何把一个表内的一条数据复制到另外一个结构完全一样的表中
select * from a where not exists(select 1 from b where id=a.id)
-- Author : htl258(Tony)
-- Date : 2010-04-08 13:54:29
-- Version:Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
-- Mar 29 2009 10:27:29
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
--------------------------------------------------------------------------
--> 生成测试数据表:aIF NOT OBJECT_ID('[a]') IS NULL
DROP TABLE [a]
GO
CREATE TABLE [a]([ID] INT,[NAME] NVARCHAR(10))
INSERT [a]
SELECT 10,'AAA' UNION ALL
SELECT 101,'DDDD' UNION ALL
SELECT 1026,'CCCC' UNION ALL
SELECT 20,'BBB' UNION ALL
SELECT 201,'SSS' UNION ALL
SELECT 2012,'MMM' UNION ALL
SELECT 30,'QDA' UNION ALL
SELECT 301,'DQDF' UNION ALL
SELECT 30012,'DWRGT'
GO
--SELECT * FROM [a]--> 生成测试数据表:bIF NOT OBJECT_ID('[b]') IS NULL
DROP TABLE [b]
GO
CREATE TABLE [b]([id] INT,[name] NVARCHAR(10))
INSERT [b]
SELECT 101,'DDDD' UNION ALL
SELECT 201,'CCCC' UNION ALL
SELECT 300,'CDAF' UNION ALL
SELECT 4123,'adsfsdaf'
GO
--SELECT * FROM [b]-->SQL查询如下:
SELECT A.* FROM A WHERE NOT EXISTS(SELECT 1 FROM B WHERE A.ID LIKE LTRIM(B.ID)+'%')
/*
ID NAME
----------- ----------
10 AAA
1026 CCCC
20 BBB
30 QDA
301 DQDF(5 行受影响)
*/