现有两表如下:
create table tt(a nvarchar(20),b nvarchar(20))
insert into tt values('E10','出厂')
insert into tt values('E20','出厂排产')
insert into tt values('E30','安装完工') create table dd(c nvarchar(40))
insert into dd values('出厂排产完工日7天后')
insert into dd values('出厂完工日7天后')
insert into dd values('安装完工7天后')
我想得到结果:
c b
出厂排产完工日7天后 E20
出厂完工日7天后 E10
安装完工10天后 E30 应该怎么写
create table tt(a nvarchar(20),b nvarchar(20))
insert into tt values('E10','出厂')
insert into tt values('E20','出厂排产')
insert into tt values('E30','安装完工') create table dd(c nvarchar(40))
insert into dd values('出厂排产完工日7天后')
insert into dd values('出厂完工日7天后')
insert into dd values('安装完工7天后')
我想得到结果:
c b
出厂排产完工日7天后 E20
出厂完工日7天后 E10
安装完工10天后 E30 应该怎么写
解决方案 »
- 新手求教编写子查询出现“当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。”
- 如何在sql的一个表中一次查询一个字段和其他字段的个数
- 为什么我从SQL 2005导出一个表到oracle 10g ,在查询的时候提示我 oracle table or view does not exist
- 关联表取数据,有多余数据,求正确语句
- 谁能告诉我该怎么办呢?请教!!!
- 请大家帮忙,谢谢了!
- 急死我了,看不懂。
- 这样的输出结果????高手帮忙!!!
- 请教:SQL2005中的包含性列[索引复盖]如何用才能看出效果?
- 求Ms Sql高手解答。。。。。。。。。???急(补充条件)
- 简单SQ;语句求救 模糊查找替换
- sql查询优化问题
declare @tt table(a varchar(20),b varchar(20))
insert into @tt values('E10','a')
insert into @tt values('E20','ab') declare @dd table(c varchar(40))
insert into @dd values('ab123') select a.a,b.c from @tt a,@dd b
where a.b=left(b.c,patindex('%[0-9]%',b.c)-1)
/*
a c
E20 ab123
insert into tt1 values('E10','出厂')
insert into tt1 values('E20','出厂排产')
insert into tt1 values('E30','安装完工') create table dd1(c nvarchar(40))
insert into dd1 values('出厂排产完工日7天后')
insert into dd1 values('出厂完工日7天后')
insert into dd1 values('安装完工7天后') select A,c
from tt1 k ,dd1 t
where CHARINDEX(b,c)>0 and not exists(select * from tt1 where CHARINDEX(b,t.c)>0 and b<>k.b)
union all
select A,c
from tt1 k ,dd1 t
where CHARINDEX(b,c)>0 and A not IN (
select A
from tt1 k ,dd1 t
where CHARINDEX(b,c)>0 and not exists(select * from tt1 where CHARINDEX(b,t.c)>0 and b<>k.b))
/*
A c
-------------------- ----------------------------------------
E10 出厂完工日7天后
E30 安装完工7天后
E20 出厂排产完工日7天后(3 行受影响)
*/
SQL code
select top 1 tt.a,dd.c from tt left join dd on charindex(tt.b,dd.c)>0 order by len(b) desc如果像我现在问的这样,有多条怎么办呀
select *
from aa as a
where not exists(select 1 from aa where ms = a.ms and sname < a.sname)