SQL中循環(huán)語句的效果實例
循環(huán)語句是SQL中最常用的語句之一,下面就將以實例的方式示范SQL中循環(huán)語句的效果,供您參考,希望對您學習SQL中循環(huán)語句能夠有所幫助。
假設HRS_Group存在7條記錄,GroupID分別為3、4、5、6、7、13、14
執(zhí)行如下Sql語句:
- declare @sSql varchar(8000)
- select @sSql = ''
- select @sSql = @sSql + 'alter table #tt add A' + rtrim(convert(varchar(20), GroupID)) + ' decimal(5, 1) ' + CHAR(10)
- from HRS_Group where Type = 0 order by GroupID
- select @sSql
執(zhí)行得到@sSql的值:
- ----------------------------------------------------------------------------------------
- alter table #tt add A3 decimal(5, 1)
- alter table #tt add A4 decimal(5, 1)
- alter table #tt add A5 decimal(5, 1)
- alter table #tt add A6 decimal(5, 1)
- alter table #tt add A7 decimal(5, 1)
- alter table #tt add A13 decimal(5, 1)
- alter table #tt add A14 decimal(5, 1)
- ----------------------------------------------------------------------------------------
該Sql語句
- select @sSql = @sSql + 'alter table #tt add A' + rtrim(convert(varchar(20), GroupID)) + ' decimal(5, 1) ' + CHAR(10)
- from HRS_Group where Type = 0 order by GroupID
是通過以GroupID大小為順序,從數(shù)據(jù)庫7次取值而對@sSq進行了7次拼接,起到了循環(huán)的效果,CHAR(10)表示換行
若將以上語句做如下修改:
- declare @sSql varchar(8000)
- select @sSql = 'alter table #tt add A' + rtrim(convert(varchar(20), GroupID)) + ' decimal(5, 1) ' + CHAR(10)
- from HRS_Group where Type = 0 order by GroupID
- select @sSql
執(zhí)行得到@sSql的值:
- ----------------------------------------------------------------------------------------
- alter table #tt add A14 decimal(5, 1)
- ----------------------------------------------------------------------------------------
是通過以GroupID大小為順序,從數(shù)據(jù)庫7次取值而對@sSq進行了7賦值,但因為沒有拼接,所以@sSql只保留了第7次的賦值
【編輯推薦】