1. 请教,以下需求的sql怎么写
select *,max(t2.indate) from testa t1
LEFT JOIN testb t2 on t1.aid =t2.aid
2. 请教一下我这种需求的Sql语句该怎么写
可以提供种思路:
创建一个临时表 或 with as 子句,
table(skillid,num)
数据(1,x),(2,y),(3,z);
然后
select
t.employeeid
from
(select
employeeid,
skillid,
row_number()over(partition by skillid order by employeeid) rn
from employeeskill
where skillid in (select skillid from employeerequireskill where employeerequireid=@employeereqireid)
) t,table
where
t.skillid=table.skillid
and
t.rn<=table.num;
3. 这样的需求如何写sql语句
SELECT *
FROM tb
WHERE (reg_time IN
(SELECT MAX(reg_time)
FROM tb
GROUP BY areaID))
楼主,我试过了,可以的,tb为表名,给分哦
4. 这种需求数据库sql语句怎么写
update table set text = replace(text,'xxxxxxxxxxxxxx','')
5. 这样的需求如何写SQL语句,求教!
select A,B=(select stuff((select ','+乙.A from 乙 where 乙.B=甲.A for xml path('')),1,1,'')) from 甲
6. sql语句怎么写
--就你所述需求,在SQLServer2000环境下,语句如下:
SELECT [姓名],
SUM(CASE [科目] WHEN '语文' THEN [成绩] END) AS [语文],
SUM(CASE [科目] WHEN '数学' THEN [成绩] END) AS [数学],
SUM(CASE [科目] WHEN '英语' THEN [成绩] END) AS [英语]
FROM TableName
GROUP BY [姓名]
GO
--在SQLServer2005或更高版本环境下,语句还可以如下格式(效率更高噢):
SELECT [姓名], [语文], [数学], [英语]
FROM TableName
PIVOT(SUM([成绩]) FOR
[姓名] IN([语文], [数学], [英语])) AS T
GO
--另外说一下,表设计是否合理不能一概而论,不同的结构有不同的用法,具体要看需求。
--你这个还是相对较合理,而且毕竟就算要行转列也不会大幅影响效率
-- powerbuildre所说的应该加一个学号列倒是应该甚至必须的,这样姓名列就可以除去了,而且也一般是把学号当做外键关系来匹配的。至于他写的这个句子,数据库引擎处理逻辑上是把原表进行四倍的笛卡尔积运算,然后匹配where字句,也就是说假设表原来有1000行数据,它会运算成1000*1000*1000*1000行的一个虚拟表然后匹配where字句,效率极低;只是SQLServer2000及更新版本会自动优化成四个表的inner join也就是内联查询的关系。数据量小的话,效率可能不怎么能轻易看出来,但是数据量一大,很容易拖垮服务器。这是一种极不推荐的写法,换句话说,如果你用这种语法面试,可能当场就会被pass掉了。
想学SQLServer啊?QQ:316784428
一起交流啊,我也是完全从自学开始一步一步走到今天的~!
7. 关于写SQL语句的技巧
恩,这个怎么说呢
sql语句总结一下,无非就几种,关联查询,子查询,各种函数的使用
根据要做的需求,先分析一下,需要用到哪些查询
比如要用到关联查询
就先把要用到的表列出来,比如a,b,c三个表
就先写出来
select from a,b,c
前边查询的内容可以先放着不用写
然后找三个表关联关系,当然也要看是自然连接还是左连接什么的,这里就给你举例正常连接吧
select from a,b,c where a.id=b.aid and b.id=c.bid
关联关系写好了,就可以在写查询的内容了
select a.name,b.name,sum(c.value) from a,b,c where a.id=b.aid and b.id=c.bid
然后,你再看,因为有聚合查询,后边要group by
select a.name,b.name,sum(c.value) from a,b,c where a.id=b.aid and b.id=c.bid group by a.name,b.name
其他的,再有什么排序啊,等等啊,就好写了,这里就不往下写了
子查询更简单写,主要就是要判断好,要先写子查询,然后往外来套,比如
select * from b where id in (select id from a)
这个,你就要先写括号里的那个,然后写外边的
至于函数的使用,这个没什么经验,就是可能有时会出现类型转换等等的问题,你就要牢记每个函数的作用,不懂再问吧
8. 这样需求的SQL应该怎么写
你完全可以先select
..
from
xx
where
xxx,最后将2个结果在union
all起来。
9. 这样的需求怎么写SQL语句
alter table 表名 add(UNIQUE(name ));
增加一个唯一约束