• 步步为营:SQLServer查询随机不相同的记录插入临时表


    DECLARE @Num VARCHAR(max)
    DECLARE @SQL VARCHAR(max)
    SET @Num = '1'
     
    IF NOT EXISTS (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..##TABLE') and type='U')
    BEGIN
        SET @SQL = 'SELECT top ' + @Num + ' id,Realname INTO ##TABLE FROM Edu_Users ORDER BY NEWID()'
        PRINT @SQL
        EXEC(@SQL)
        --SELECT top 1 id,Realname INTO ##TABLE FROM Edu_Users ORDER BY NEWID()
    END
    ELSE
    BEGIN
        SET @SQL =    'INSERT INTO ##TABLE(id,Realname) SELECT TOP ' + @Num + ' id,Realname FROM Edu_Users WHERE NOT EXISTS(SELECT 1 FROM ##TABLE WHERE id=Edu_Users.id) ORDER BY NEWID()'
        PRINT @SQL
        EXEC(@SQL)
        --INSERT INTO ##TABLE(id,Realname) SELECT TOP 1 id,Realname FROM Edu_Users WHERE NOT EXISTS(SELECT 1 FROM ##TABLE WHERE id=Edu_Users.id) ORDER BY NEWID()
    END

    首先判断临时表是否存在.

    不存在就执行SELECT INTO 随机记录

    如果存在就执行INSERT INTO SELECT随机记录并且不重复 

  • 相关阅读:
    java实现链队列
    java使用链栈实现迷宫求解
    java使用链栈实现数制转换
    java实现链栈
    java实现顺序栈
    java实现双向循环链表
    java实现循环链表
    java实现单链表
    java实现顺序链表
    Osmocom-BB中cell_log的多种使用姿势
  • 原文地址:https://www.cnblogs.com/79039535/p/2600935.html
Copyright © 2020-2023  润新知