以前一直没用过数据库的游标,前段时间用到,这里做下简单的总结记录,以便下次再用时能很快入手。
简单代码段
DECLARE @StockCode VARCHAR(8),
@InPoolDate VARCHAR(8),
@InPoolPrice Decimal(6, 2),
@InPoolTotalStocks Decimal(18, 4),
@MaxChangeRatio FLOAT,@ChangeRatio FLOAT,
@CurPrice FLOAT,
@InPoolMaxPriceChangeRatio FLOAT,
@NowTotalStocks Decimal(18, 4)
1定义游标
DECLARE VITM1_Cursor CURSOR FAST_FORWARD(优化效率)FOR
SELECT StockCode,Price,ChooseDate,TotalStocks
FROM F_POOL_VITM1 WITH(NOLOCK)
WHERE ChooseDate>=@DateTemp0
2打开游标
OPEN VITM1_Cursor
FETCH NEXT FROM VITM1_Cursor
INTO @StockCode,@InPoolPrice,@InPoolDate,@InPoolTotalStocks
3判断状态
WHILE @@FETCH_STATUS=0
BEGIN
。。。
4获取下一列数据
FETCH NEXT FROM VITM1_Cursor
INTO @StockCode,@InPoolPrice,@InPoolDate,@InPoolTotalStocks
END
5关闭游标
CLOSE VITM1_Cursor;
DEALLOCATE VITM1_Cursor;
#临时表
CREATE TABLE #BaseTmp(MarketId INT,
ChooseDate CHAR(8),
StockCode CHAR(6),
PRICE DECIMAL(6,2),
TotalStocks DECIMAL(18,4),
Rank INT,
II0 FLOAT,
VITM_Star1 FLOAT
)
DROP TABLE #BaseTmp
转载于:https://blog.51cto.com/onthewaytool/684401