关于一个sql语句的写法

作者&投稿:巴冰 (若有异议请与网页底部的电邮联系)
select * from tablename a
where exists(select 1 from tablename where color='red' and name=a.name)
and exists(select 1 from tablename where color='blue' and name=a.name)

select name
from 表名 t1, 表名 t2
where t1.name=t2.name and t1.color='red' and t2.color='blue'
用自连接就可以,很简单

nietiezheng 正解,使用自连接,可以得到

select t1.name as name,t1.color as color1,t2.color as color2
from table as t1,table as t2
where t1.name=t2.name and t1.color='red' and t2.color='blue'

table 是表的名称

with t as
(select 1 id,'a' name,'red' color from dual
union all
select 2 id,'a' name,'blue' color from dual
union all
select 3 id,'b' name,'red' color from dual
union all
select 4 id,'c' name,'blue' color from dual
union all
select 5 id,'c' name,'green' color from dual)
select t.name,t.color from t,(
select name,count(color)c from t where color='red' or color='blue'group by name having(count(color)=2)) p
where t.name=p.name

select name,max(color) as c1,min(color) as c2
from(
select distinct name,color
from t
where color in ('red','blue')
) as T
group by name
having count(*)=2

一个sql语句的写法~

select 表1.姓名 as 姓名,表2.成绩 as 成绩 from 表1
inner Join 表1.姓名=表2.姓名;

提醒楼主一下 你的问题是错的 所以以上的答案也都是错的

李四 王五的成绩都是2那么怎么可能李四 中,王五是差呢?

两种方法:执行效率是有差异的,自己试下
1.
select * from A where c=1 and (a1 like '%a%' or b1 like '%b%');
2.
select * from A where c=1
union
select * from A where a1 like '%a%'
union
select * from A where b1 like '%b%';

如何写出高性能SQL语句
答:2、统一SQL语句的写法 对于以下两句SQL语句,程序员认为是相同的,数据库查询优化器认为是不同的。 select * from dual select * From dual 其实就是大小写不同,查询分析器就认为是两句不同的SQL语句,必须进行两次解析。生成2个执行计划。 所以作为程序员,应该保证相同的查询语句在任何地方都一致,多一个...

问一个SQL语句写法
答:在sqlserver或access中,若要查询前5条记录,使用top 5即可,但在mysql中不支持这个写法,它用limit 5。可以利用MySQL中SELECT支持的一个子句——LIMIT——来完成这项功能。LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:SELECT * FROM MYTABLE ORDER BY AFIELD LIMIT ...

SQL简单语句写法
答:假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 select identity(int,1,1) as autoID, * into #Tmp from tableName select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID select * from #Tmp where autoID in(select autoID from tmp2)最后一个...

请教一个SQL语句怎么写
答:SELECT N 姓名,R 总任务,O 完成任务数,TO_CHAR(ROUND(O / R, 2) * 100) || '%' 完成率 FROM (SELECT 姓名 N,COUNT(任务) R,SUM(CASE WHEN 完成情况 = '是' THEN 1 ELSE 0 END) O FROM A GROUP BY 姓名);

sql语句包含怎么写
答:(所有包含‘value1’这个模式的字符串)。sql语句用于数据库查询和程序设计,比如查询表中某字段值“包含”某字符串的所有记录的方法如下:如果表中有一个name字段,查询name包含“张三”的所有记录,就可以这样写:Stirng strsql="SELECT * FROM 表名 WHERE name LIKE ’%"+"张三"+"%’"。

求sql查询语句写法
答:这个简单,select id,char,count(*) as 'count' from table1 group by id,char 这样就可以得到你想要的结果了.count(*)括号里写的是你要按哪个列计数的列名,你的表中就两列,而你就是要按这两列计数,也就是按表中所有的列计数,说白就是计算这个表中有多少条重复的数据,所以就写count(*),也...

这个SQL查询语句要怎么写
答:3.select a.姓名,a.科目,b.成绩 from a,b where a.姓名=b.姓名 and a.科目=b.科目 and b.成绩<>'合格'错误,这个是1的升级版,修改了姓名、科目的对应问题。但忽略了可能存在A中的姓名、科目不存在B中的情况(如缺考情况下,B表中可能没有数据)。这一SQL不会显示,此时可能是人员缺考,...

求SQL查询语句写法
答:“shuzhi”字段记录的分隔符写法规范的情况下(英文逗号且不留空格),SQL语句可以这样写:select id,case when shuzhi='1' then 1 when shuzhi like '1,%' then 1 when shuzhi like '%,1' then 1 when charindex(',1,',shuzhi)>0 then 1 else null end as shuzhi1,case when shuzhi='2...

sql语句怎么写?
答:至于他写的这个句子,数据库引擎处理逻辑上是把原表进行四倍的笛卡尔积运算,然后匹配where字句,也就是说假设表原来有1000行数据,它会运算成1000*1000*1000*1000行的一个虚拟表然后匹配where字句,效率极低;只是SQLServer2000及更新版本会自动优化成四个表的inner join也就是内联查询的关系。数据量小...

请教一条sql语句的写法
答:(select * from user where a>b and c=0) union ((select * from user) MINUS (select * from user where a>b and c=0))因为条件很复杂的,除了a<=b and c<>0,还有a