ITPub博客

首页 > IT职业 > IT图书 > SQL循环26个字母插入到一个表中

SQL循环26个字母插入到一个表中

IT图书 作者:LeeC 时间:2021-09-09 09:46:37 0 删除 编辑

开发过程中,需要用到26个字母的一个临时表,一开始想到的方法如下(SQL Server 2008 R2执行):

代码

IF OBJECT_ID('#TempDriveInfo') IS NOT NULL
        DROP TABLE #TempDriveInfo
    CREATE TABLE #TempDriveInfo 
     (   
        [DriveInfoId] TINYINT IDENTITY PRIMARY KEY NOT NULL,
        [DriveName] NVARCHAR(10)    
     )  
     INSERT INTO  #TempDriveInfo ([DriveName]) VALUES('A'),('B'),('C'),('D'),('E'),('F'),('G'),('H'),('I'),('J'),('K'),('L'),('M'),('N'),('O'),('P'),('Q'),('R'),('S'),('T'),('U'),('V'),('W'),('X'),('Y'),('Z')
     SELECT * FROM #TempDriveInfo  

 

上面这个方法,虽然没有什么问题,但始终觉得不好,还是想到SQL Server的CHAR()函数,把INSERT语句改了:

代码

INSERT INTO  #TempDriveInfo ([DriveName]) VALUES (CHAR(65)),(CHAR(66)),(CHAR(67)),(CHAR(68)),(CHAR(69)),(CHAR(70)),(CHAR(71)),(CHAR(72)),(CHAR(73)),(CHAR(74)),(CHAR(75)),(CHAR(76)),(CHAR(77)),(CHAR(78)),(CHAR(79)),(CHAR(80)),(CHAR(81)),(CHAR(82)),(CHAR(83)),(CHAR(84)),(CHAR(85)),(CHAR(86)),(CHAR(87)),(CHAR(88)),(CHAR(89)),(CHAR(90))

 

经上面的修改,可以实现相同的结果,还是觉得它很繁杂一样,不够简洁,想到它是连续性,想到使用循环方法。

代码

DECLARE @FirstCapitalLetters INT = 65     
WHILE @FirstCapitalLetters BEGIN
    INSERT INTO  #TempDriveInfo ([DriveName]) VALUES (CHAR(@FirstCapitalLetters))
    SET @FirstCapitalLetters = @FirstCapitalLetters + 1
END

 

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4352/viewspace-2812112/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    86
  • 访问量
    659