我試圖編寫一個包含複雜約束的查詢(至少對我來說)。我需要從我的數據庫中抽取三條測試(測試表A中的測試A,測試B和測試C)中顯示其得分的學生數據行。我需要符合以下標準:我需要學生在測驗A上得分恰好爲5,另外他們需要在測驗B和測驗C上得分至少爲4分,在測驗B和測驗中得分爲5 C也是如此。我如何編寫這個語法?謝謝。「where」子句中的複雜約束條件
0
A
回答
0
有幾種方法可以解決這個問題。這是一個。 (我作出有關字段名稱和表結構假設爲示例的目的):
;
WITH A
as (
SELECT *
FROM Test
WHERE TestID = 'A'
)
, B
as (
SELECT *
FROM Test
WHERE TestID = 'B'
)
, C
as (
SELECT *
FROM Test
WHERE TestID = 'C'
)
-- Pull it all together
SELECT A.StudentID
, ScoreA = A.Score
, ScoreB = B.Score
, ScoreC = C.Score
FROM A
INNER JOIN B
ON A.StudentID = B.StudentID
INNER JOIN C
ON A.StudentID = C.StudentID
-- Filter
WHERE A.Score = 5
AND B.Score >= 4
AND C.Score >= 4
AND (B.Score = 5 or C.Score = 5)
這是基於這樣的假設的分數A,B,和C是所有在Test
不同的行表,並且希望結果在同一行中具有全部三個分數。
如果它們全都在同一行中,則可以跳過CTE,只需使用WHERE
子句,並適當地重命名了字段和前綴。
+0
謝謝你,這是非常有益的! – eca16
+0
很高興聽到它!如果有幫助,請考慮將其標記爲您接受的答案。謝謝。 –
相關問題
- 1. Mysql的複雜Where子句
- 2. Oracle對where子句的唯一約束條件
- 3. 的Oracle SQL約束where子句
- 4. 使用where子句+ args的新約束?
- 5. 如果WHERE子句中的條件爲假,只需要HAVING子句中的約束條件
- 6. T-SQL:條件連接或複雜的WHERE子句?
- 7. 複雜的SQL where子句:許多「和」和「或」條件
- 8. WHERE子句中的條件
- 9. SQL複雜約束
- 10. 有效處理Where子句中的多個可選約束條件
- 11. Laravel - 雄辯複雜的where子句
- 12. 複雜的MySQL加入/ where子句
- 13. 複雜的SQL WHERE子句問題
- 14. 複雜性差之間Where子句內查詢和Where子句中的條件性拆分在SSIS
- 15. WHERE子句中的條件語句
- 16. 複雜的邏輯約束
- 17. 有條件的WHERE子句
- 18. PostgreSQL的條件where子句
- 19. LINQ的條件Where子句
- 20. LINQ的條件Where子句
- 21. CASE語句WHERE子句中!=條件
- 22. 在iOS7上的UICollectionViewCell子類中未約束的約束條件
- 23. 複雜檢查約束?
- 24. 外鍵約束(複雜?)
- 25. Oracle - where子句中的複雜case case語句
- 26. SQL Server中的某些where子句的外鍵約束
- 27. 自動佈局 - 複雜的約束條件
- 28. 在where子句中添加子條件
- 29. SQL查詢的WHERE子句中的CASE語句。有點複雜的COUNT子句
- 30. 子類中的快速約束條件
幫助我們幫助你!請分享表結構[s],一些樣本數據以及您想要獲得的樣本結果。 – Mureinik
他們如何「在測試B和測試C上得分至少爲4,在測試B和測試C上得分爲5」?你在同一個測試中不能得到4和5的分數......對吧? – JNevill
這是最基本的查詢。什麼似乎是一個問題? –