我有一張表,我希望從中選擇一個列的子集,但也會在計算列的最後添加一個計算列,這取決於您在某個隊列中的位置。有以下字段(即是相關的):計算列在SQL中的問題
ID:INT,自動增加,主鍵 answertime:日期時間,可爲空
默認情況下,當事情被提交到隊列中,其answertime爲NULL。所以,我希望選擇隊列中的東西的ID以及它在隊列中的等級(即等級1是未答覆的下一個等等)。這是我在想什麼:
rank - id - COUNT(ids下面我的id,其中answertime不爲空)。不過,我有這個查詢的語法問題:
SELECT id AS outerid, COUNT(
SELECT * FROM tablename WHERE id<outerid AND answertime IS NOT NULL
)
FROM tablename
WHERE answertime IS NULL;
現在,很明顯,這是錯誤的,因爲我相當有信心,你不能嵌入聚合函數的選擇裏面,同樣翻轉SELECT和COUNT不起作用,因爲您不能在代碼中嵌入SELECT(它只能在WHERE子句中使用)。
這甚至可以只用SQL做,或者我需要在程序結束時添加一些邏輯嗎?
如果有幫助,我在SQL Server 2008上這樣做,但我懷疑這會增加任何價值。
沒時間給他們一個很好的例子,但查找ROW_NUMBER函數。如果我對你的理解正確,我認爲這將是你想要的。 – HLGEM