大佬们,问一个sql写法

大佬们,有表test,有first_digit,second_digit,third_digit这三个字段,first_digit插入字母A-W,second_digit插入数字0000-9999,third_digit插入00-99。想要一次性插入A000000-W999999这些数据,既每个字母都是000000-999999。数据库是sqlserver,sql语句该怎么写

SQL yzmNfSsb0632404 发布于 2024-6-14 14:53 (编辑于 2024-6-14 14:55)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2024-6-14 14:55(编辑于 2024-6-14 14:59)

要写存储过程去循环了

Mysql 循环插入10000条数据(案列)_mysql insert10000次-CSDN博客

--改成你要循环的次数,其它的就自己拼就行了

DELIMITER $$

 

CREATE PROCEDURE LoopInsert()

BEGIN

    DECLARE i INT DEFAULT 1;

    WHILE i <= 10000 DO

        INSERT INTO example_table (data) VALUES (CONCAT('Row ', i));

        SET i = i + 1;

    END WHILE;

END$$

 

DELIMITER ;

多次循环的   26*100000次循环你改成你要的数字吧。。

DELIMITER //

 

CREATE PROCEDURE nested_loops_example()

BEGIN

  DECLARE outer_counter INT DEFAULT 1;

  DECLARE inner_counter INT DEFAULT 1;

 

  WHILE outer_counter <= 5 DO

    WHILE inner_counter <= 5 DO

      SELECT CONCAT('Outer loop iteration: ', outer_counter, ', Inner loop iteration: ', inner_counter) AS iteration;

      SET inner_counter = inner_counter + 1;

    END WHILE;

    SET outer_counter = outer_counter + 1;

    SET inner_counter = 1; -- Reset inner counter for next outer loop

  END WHILE;

END //

 

DELIMITER ;

 

CALL nested_loops_example();

最佳回答
0
快乐星光Lv5中级互助
发布于2024-6-14 15:25(编辑于 2024-6-15 08:04)

是这个玩意吗

WITH numbers AS (

  SELECT 0 AS num

  UNION ALL

  SELECT num + 1 FROM numbers WHERE num < 9999

),

letters AS (

  SELECT 65 AS let

  UNION ALL

  SELECT let + 1 FROM letters WHERE let < 90

)

-- SELECT right(concat('0000',num),4) numstr FROM numbers OPTION (MAXRECURSION 10000)

SELECT char(let) let,numstr,right(numstr,2) numstr2

FROM letters s

left join (SELECT right(concat('0000',num),4) numstr FROM numbers )  b on 1=1

OPTION (MAXRECURSION 10000) -- 设置最大递归次数为10000(默认100)

image.png

  • 4关注人数
  • 239浏览人数
  • 最后回答于:2024-6-15 08:04
    请选择关闭问题的原因
    确定 取消
    返回顶部