假設我正在創建一個「學生」數據庫,並且裏面有一張名爲「考試」的表格。現在我有以下兩列 - '標記'和'等級',我希望「等級」列自動接收基於'標記'中輸入的值的值。對'標記'> = 90說'A',對'標記'> = 80說'B'等等。 有沒有辦法做到這一點?sql - 是否可以根據另一列中的值設置列值?
1
A
回答
4
不是很容易。在MySQL中,你可以做一個更新:
update students
set grade = (case when marks >= 90 then 'A'
when marks >= 80 then 'B'
. . .
end);
但是,這會掉過期的下一個insert
或update
聲明。
在MySQL 5.7.6,你可以有自動生成列:
alter table students
add grade char(1) as (case when marks >= 90 then 'A'
when marks >= 80 then 'B'
. . .
end);
這很方便,因爲列在查詢時計算,以便它是自動跟上時代的。
在早期版本中,你可以做一個觀點類似:
create view v_students as
select s.*,
(case when marks >= 90 then 'A'
when marks >= 80 then 'B'
. . .
end) as grade
from students;
這幾乎生成列一樣好,但它要求每個人查詢視圖。
最後,您可以實際存儲該值,使用觸發器在marks
更改時保留該值。
+0
哇。謝謝。 :) – Vaibhav
相關問題
- 1. 根據同一行中的其他值,是否可以自動設置列中的值?
- 2. 根據另一列值計算列值
- 3. 根據另一列值獲取列值
- 4. 根據另一列設置列的值等於pandas
- 5. 根據另一列的值獲取值
- 6. SQL根據另一列的值更新列值
- 7. SQL查詢根據另一列中的值擴展一列
- 8. 根據另一個值設置CSS值
- 9. 如何根據另一列值設置列值觸發器語句?
- 10. 根據R中另一列中的值重置單元格值
- 11. 根據另一行另一列的值填充值爲空列
- 12. 根據同一行中的另一列值填充列的值
- 13. 根據SQL2005中列A中的值設置列B中的值?
- 14. 根據sql中的另一個表列值創建表列
- 15. SQL是否可以設置一個包含依賴於另一列的值的列?
- 16. 根據另一列的值從一列中複製值
- 17. 根據其他三列中的值設置R列中的值
- 18. 一列的SQL設置值等於同一表中另一列的值
- 19. awk:根據另一列的值打印一列或另一列
- 20. sql中根據另一列
- 21. 根據另一個表中存在的值在SELECT語句中設置列值
- 22. 根據linq查詢中的另一個值設置一個值
- 23. 如何根據另一列的值增加列的值
- 24. 根據另一列值在新列中顯示一個值period123y
- 25. 根據另一列的數值設置因子水平
- 26. 如何根據另一列的值更新「職級」列的值?
- 27. 根據另一列值更新R中data.table的列值
- 28. R - 根據另一列中的值選擇並返回列值
- 29. 根據另一個散列中的值替換散列值
- 30. 根據R中另一列的值爲列指定隨機值
你應該看看生成的列或觸發器來做到這一點。 – HLGEM