打印sql存储过程中两列的所有值

时间:2018-08-15 23:08:27

标签: sql

我一直在尝试使用sql存储过程中的循环来打印表中两列的所有值,但是还没有运气。

CREATE PROCEDURE [usp_my_procedure_name]
AS 
    SET NOCOUNT ON;
BEGIN
    DECLARE @User_ID INT =16  
    DECLARE @ID INT
    DECLARE @Count INT
    DECLARE @Count1 INT
    DECLARE @Code VARCHAR(500)

    SELECT @Count1= MAX(ID), @Count = MIN(ID)
    FROM ABC
    WHERE ID = 10 AND Code NOT LIKE '%ABC%' 

    WHILE (@Count <= @count1)
    BEGIN
        SELECT @ID = (ID), @Code = Code 
        FROM ABC 
        WHERE ID = 10 AND Code NOT LIKE '%ABC%

        PRINT @ID 
        PRINT @Code

        SET @Count = @Count + 1
    END
END

还有7k条记录,该如何进一步优化

1 个答案:

答案 0 :(得分:1)

尝试一下,并与我们分享它给您带来的好处以及理想的结果(与ABC分享一些输入行)。

CREATE PROCEDURE [usp_my_procedure_name]
AS 
    SET NOCOUNT ON;
BEGIN

    SELECT Distinct ID, Code
    FROM ABC
    WHERE Code NOT LIKE '%ABC%
    ORDER BY ID

END