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 ));
增加一個唯一約束