2009-12-17 40 views
0

我有一個查詢返回整數和變量的數量。SQL選擇與整數和變量不同

我想要的結果不同,但只有一個整數。

SELECT DISTINCT 
     t.TaskID , 
     td.[TestSteps] 
FROM SOX_Task t 
snip 

有沒有簡單的方法來做到這一點?

+0

你會期望輸出看起來像什麼?你可以只選擇DISTINCT int列? – doza 2009-12-17 14:37:14

+0

這是一個非常含糊的問題 - 你能否提供更多關於你想要做什麼的細節,以及你正在使用哪個數據庫? – 2009-12-17 14:48:17

回答

1

我要的結果不同,但僅由整數之一。

此:

SELECT DISTINCT t.taskid 
    FROM SOX_TASK t 

...將返回唯一任務id值的列表 - 不會有任何重複。

如果你想返回一個特定的值,則需要在WHERE子句中指定它:

SELECT t.* 
    FROM SOX_TASK t 
WHERE t.taskid = ? 

這將返回與特定taskid值的所有行。如果你想用的taskid值相關聯的值的DISTICT列表:

SELECT DISTINCT t.* 
    FROM SOX_TASK t 
WHERE t.taskid = ? 

GROUP BY是越來越明顯的/唯一值的另一種方式,這是我的偏好來使用,但爲了使用GROUP BY我們需要知道表格中的列和您想要的分組。

3

DISTINCT不會以這種方式工作......它確保整行不重複。此外,如果確實如此,它將如何決定哪些值應出現在其他列中?

你可能想要在這裏做的是一個GROUP BY對你想要區分的列,然後將適當的聚合運算符應用到其他列,以獲得你想要的值(例如MIN,MAX,SUM, AVG等)。

例如,以下內容返回具有該任務的最大步數的不同的任務ID列表。這可能不是你想要的,但它應該給你一個總體思路。

SELECT t.TaskID, MAX(t.TestSteps) 
FROM SOX_Task t 
GROUP BY t.TaskID