我有一个包含Employees的表employees (假设重要字段是int,Name varchar(50))和一个包含sales Areas的表are ( int,EmployeeID int,USState char(2))。
样本值为:
Employees
ID Name
1 Shoeman
2 Smith
3 Johnson
Areas
ID EmployeeID USState
1 1 NY
2 1 FL
3 1 AR
4 2 DC
5 2 AR
6 3 TX有没有人能给我一个提示,让我用下面的方式进行SQL查询,以获得输出记录集:
EmployeeID USState
1 NY FL AR
2 DC AR
3 TX目标平台: SQL Server 2005。
发布于 2011-05-20 05:18:39
这是我使用UDF的首选格式(在大型DB上似乎也要快得多)
CREATEFUNCTION dbo.StateList(@ID int) RETURNS varchar(max)
AS
DECLARE @out varchar(max);
SET @out=''; -- comment this out to reutrn NULL if nothing found
SELECT @out=@out+USState+' ' -- operates like a loop assigning the values in sequence to the out variable.
FROM AREAS
WHERE EmployeeID=@ID
ORDER BY USState
RETURN @out查询示例...
SELECT Name, dbo.StateList(EmployeeID)
FROM Employees
Order BY Name通过这种方式,您可以为要以这种方式分解的每个列表创建一个UDF。
https://stackoverflow.com/questions/3433942
复制相似问题