2012-03-07 16 views
0

我試圖使用MIN(左),在SQL中找到一個ID的前綴(例如我想從UJH UJH5433)使用MIN(左(@prefix,3))在SQL

@prefix varchar(25) 
AS 
select [Description] 
from Prefix 
where Prefix = MIN(left(@prefix, 3)) 

當我嘗試執行

ALTER PROCEDURE [dbo].[prefixInfo2] 

聲明,SQL似乎並不喜歡MIN(left(@prefix, 3))格式。這是錯誤消息我得到:

聚合不應出現在WHERE子句中,除非它是在含有HAVING子句或選擇列表在子查詢中,並且被聚合的列是外部引用。

有沒有辦法讓MIN工作?

+0

如果您在該過程之外運行select查詢,它是否工作或者您是否遇到錯誤? – Taryn 2012-03-07 20:40:58

+0

不幸的是同樣的錯誤。 – nhat 2012-03-07 20:43:37

+0

你認爲'MIN'的意思是什麼?因爲它寫的沒有意義,因爲它看起來像@prefix是一個參數 – 2012-03-07 20:45:55

回答

2

所有你需要的是得到一個id的前綴是LEFT(@id, 3)。你不需要MIN

+0

這工作,謝謝! – nhat 2012-03-07 20:44:54