为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
SQL Server

开发过程中,需要用到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 <= 90
BEGIN
    INSERT INTO  #TempDriveInfo ([DriveName]) VALUES (CHAR(@FirstCapitalLetters))
    SET @FirstCapitalLetters = @FirstCapitalLetters + 1
END

 

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消