• SQL CURSOR


    SET NOCOUNT ON;
    
    DECLARE @vendor_id int, @vendor_name nvarchar(50),
        @message varchar(80), @product nvarchar(50);
    
    PRINT '-------- Vendor Products Report --------';
    
    DECLARE vendor_cursor CURSOR FOR 
    SELECT VendorID, Name
    FROM Purchasing.Vendor
    WHERE PreferredVendorStatus = 1
    ORDER BY VendorID;
    
    OPEN vendor_cursor
    
    FETCH NEXT FROM vendor_cursor 
    INTO @vendor_id, @vendor_name
    
    WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT ' '
        SELECT @message = '----- Products From Vendor: ' + 
            @vendor_name
    
        PRINT @message
    
        -- Declare an inner cursor based   
        -- on vendor_id from the outer cursor.
    
        DECLARE product_cursor CURSOR FOR 
        SELECT v.Name
        FROM Purchasing.ProductVendor pv, Production.Product v
        WHERE pv.ProductID = v.ProductID AND
        pv.VendorID = @vendor_id  -- Variable value from the outer cursor
    
        OPEN product_cursor
        FETCH NEXT FROM product_cursor INTO @product
    
        IF @@FETCH_STATUS <> 0 
            PRINT '         <<None>>'     
    
        WHILE @@FETCH_STATUS = 0
        BEGIN
    
            SELECT @message = '         ' + @product
            PRINT @message
            FETCH NEXT FROM product_cursor INTO @product
            END
    
        CLOSE product_cursor
        DEALLOCATE product_cursor
            -- Get the next vendor.
        FETCH NEXT FROM vendor_cursor 
        INTO @vendor_id, @vendor_name
    END 
    CLOSE vendor_cursor;
    DEALLOCATE vendor_cursor;
  • 相关阅读:
    174. Dungeon Game
    240. Search a 2D Matrix II
    300. Longest Increasing Subsequence
    test markdown style
    多源多汇费用流——poj2516
    费用流消圈算法(构造残量网络)
    费用流模板(带权二分图匹配)——hdu1533
    最大流模板——进阶指南整理
    最大流任务调度+离散化——hdu2883
    最大流拆点——hdu2732,poj3436
  • 原文地址:https://www.cnblogs.com/RR-ghost/p/5124215.html
Copyright © 2020-2023  润新知