我是rekha,我正在使用数据库。我过去2个月只是一个新鲜的,只有我在sql server上工作。
我有一个查询,我有2个表。例如,businesstype表包含id,businesstype和基于位置的位置我将检索数据。这很好。第二个表就像员工,列是id,name和businesstype .so我的问题是针对每个businesstype我将从employee表中获取记录,如下所示:
1,Sathish所在,softwar 4,普什帕,软件 2,拉梅什,电子 4,RAJESH,电子
我也通过使用连接,运算符和子查询来解决这个问题。但是我需要使用游标来解决这个问题。
我的写作方式如下:
1)SELECT ID,Name,BusinessType FROM Employee 在哪里使用BusinessType(从员工中选择BusinessType) 按BusinessType desc排序
2)选择ID,Name,BusinessType 来自Employee(从Employee中选择BusinessType)
3)从@BusinessTypeTemp
中选择@Location = Location选择ID ,业务类型 ,地点 来自BusinessType,其中Location = @ Location
DECLARE @TempEmployeeInfo varchar(500)
DECLARE @pos int,
@nextpos int,
@nextRecpos int,
@valuelen int
/ *创建临时表以插入地址类型* /
CREATE TABLE #EmployeeInfo (BusinessType nvarchar(80) )
SELECT @TempEmployeeInfo = BusinessType FROM @EmployeeTemp
/ *检查分隔符的代码是','并保存到临时表* /
SELECT @pos = 0, @nextpos = 1
WHILE @nextpos > 0
BEGIN
SELECT @nextpos = charindex(',', @TempEmployeeInfo, @pos + 1)
SELECT @valuelen = CASE WHEN @nextpos > 0
THEN @nextpos
ELSE len(@TempEmployeeInfo) + 1
END - @pos - 1
INSERT #EmployeeInfo(BusinessType) VALUES (convert(nvarchar, substring(@TempEmployeeInfo, @pos+1, @valuelen)))
SELECT @pos = @nextpos
END
SELECT @Count = count(BusinessType) from Employee WHERE BusinessType IN (SELECT BusinessType FROM #EmployeeInfo)
PRINT @count
IF(@Count<>0)
BEGIN
select ID,Name,BusinessType from Employee
WHERE BusinessType IN (SELECT BusinessType FROM #EmployeeInfo)
order by BusinessType desc
END
ELSE
BEGIN
SELECT 0 as ReturnID
END
但他们不想要这个,他们只想使用游标来获得结果。而且我想在一个SP中显示两个表结果。
所以请任何人帮助我。请发送紧急回复,因为今天是我解决此问题的最后一天。
雷卡