2012-03-07 19 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