22,207
社区成员
发帖
与我相关
我的任务
分享
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表三 是表一记录与表二的记录一一组合,执行代码生成 table #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1
go
select
rtrim(a.id)AS ID,
rtrim(a.Notext)AS NOTEXT,
rtrim(a.no1)AS NO1,
rtrim(a.no2)AS NO2,
rtrim(a.no3)AS NO3,
rtrim(a.NO4)AS NO4,
rtrim(a.no5)AS NO5,
ltrim(b.blu1)AS BLU1,
ltrim(b.blu2)AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表四 设定条件值查询结果, 执行代码生成 table #tbb2
if object_id('tempdb.dbo.#tbb2') is not null drop table #tbb2
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT
into #tbb2
From #tbb1
WHERE Notext like '%24%'and Notext like '%25%' or Notext like '%26%'
----->表五 统计出#tbb2的数量值 执行代码生成 table #tbb3
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3
SELECT COUNT(*) AS num
into #tbb3
FROM #tbb2
----->表六 添加记录值的单位 执行代码生成 table #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select (cast('' as varchar(50))+'大乐透 2017066期单式投注')as [name],
(cast(num as varchar(10))+'注')as num,(cast(num*2 as varchar(10))+'元') as Rvalue
into #tbb4
from #tbb3
----->表七 5个记录为一组 执行代码生成 table #tbb5
if object_id('tempdb.dbo.#tbb5') is not null drop table #tbb5
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) -1 RN
,*
FROM #tbb2
)
,Nrs
AS
(
SELECT TOP ((SELECT COUNT(1)+COUNT(1)/5 FROM Cte)) ROW_NUMBER()OVER(ORDER BY GETDATE())-1 AS Nr FROM sys.columns AS a,sys.columns AS b,sys.columns AS c,sys.columns AS d
)
SELECT ISNULL(LTRIM(T2.[NOTEXT]),'')AS [DLTT] into #tbb5
FROM Nrs T1
LEFT JOIN CTE T2 ON T1.Nr%6=T2.RN%5 AND T1.Nr/6=T2.RN/5
ORDER BY T1.Nr
----->需要的结果是5行记录分为一组,再编号“第N组”
DECLARE @sql nvarchar(max)
SELECT @sql=N'SELECT t.[DLTT] as '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+N' FROM #tbb5 AS t ' FROM #tbb4 AS T4
EXEC (@sql)
代买2017066期大乐透25注50元
第1组
07 20 24 25 26+01 07
07 20 24 25 28+01 07
07 20 24 25 34+01 07
07 20 24 25 35+01 07
07 20 24 26 32+01 07
第2组
07 20 24 25 26+04 07
07 20 24 25 28+04 07
07 20 24 25 34+04 07
07 20 24 25 35+04 07
07 20 24 26 32+04 07
第3组
07 20 24 25 26+06 07
07 20 24 25 28+06 07
07 20 24 25 34+06 07
07 20 24 25 35+06 07
07 20 24 26 32+06 07
第4组
07 20 24 25 26+07 09
07 20 24 25 28+07 09
07 20 24 25 34+07 09
07 20 24 25 35+07 09
07 20 24 26 32+07 09
第5组
07 20 24 25 26+07 11
07 20 24 25 28+07 11
07 20 24 25 34+07 11
07 20 24 25 35+07 11
07 20 24 26 32+07 11
----->结果5行记录分组,但在第三句代码里无法添加自动编号。
DECLARE @sql nvarchar(max)
SELECT @sql=N'
SELECT ISNULL(LTRIM(T2.notext),LTRIM(T3.BHao)+ LTRIM(t1.number/6+1)+N''#'') AS '+QUOTENAME(T3.name+t3.num+t3.Rvalue)+CHAR(13)
+N'FROM (select row_number()over(order by getdate()) as number from master..spt_values n1, master..spt_values n2 where n1.type=''P'' AND n2.type=n1.type and n1.number between 1 and 10000 and n2.number between 1 and 10000) as T1
INNER JOIN #tbb4 AS T3 ON 1=1
LEFT JOIN #tbb3 T2 ON T1.number=T2.RN1+2
WHERE T1.number<=t3.MaxNumber+2
'
FROM #tbb4 AS T3 ----->INNER JOIN表 #tbb4 添加记录值的单位 --> LEFT JOIN表 #tbb3 条件值进行缩水的结果
PRINT @sql
EXEC(@sql)
大乐透17067期单式投注50注100元
编号1#
07 20 24 25 26+01 07
07 20 24 25 28+01 07
07 20 24 25 34+01 07
07 20 24 25 35+01 07
07 20 24 26 32+01 07
编号2#
07 20 24 27 34+01 07
07 20 24 28 29+01 07
07 20 24 28 34+01 07
07 20 24 28 35+01 07
07 20 24 29 30+01 07
编号3#
07 20 24 25 26+04 07
07 20 24 25 28+04 07
07 20 24 25 34+04 07
07 20 24 25 35+04 07
07 20 24 26 32+04 07
编号4#
07 20 24 27 34+04 07
07 20 24 28 29+04 07
07 20 24 28 34+04 07
07 20 24 28 35+04 07
07 20 24 29 30+04 07
编号5#
07 20 24 25 26+06 07
07 20 24 25 28+06 07
07 20 24 25 34+06 07
07 20 24 25 35+06 07
07 20 24 26 32+06 07
编号6#
07 20 24 27 34+06 07
07 20 24 28 29+06 07
07 20 24 28 34+06 07
07 20 24 28 35+06 07
07 20 24 29 30+06 07
编号7#
07 20 24 25 26+07 09
07 20 24 25 28+07 09
07 20 24 25 34+07 09
07 20 24 25 35+07 09
07 20 24 26 32+07 09
编号8#
07 20 24 27 34+07 09
07 20 24 28 29+07 09
07 20 24 28 34+07 09
07 20 24 28 35+07 09
07 20 24 29 30+07 09
编号9#
07 20 24 25 26+07 11
07 20 24 25 28+07 11
07 20 24 25 34+07 11
07 20 24 25 35+07 11
07 20 24 26 32+07 11
编号10#
07 20 24 27 34+07 11
07 20 24 28 29+07 11
07 20 24 28 34+07 11
07 20 24 28 35+07 11
07 20 24 29 30+07 11
from(SELECT TOP ((SELECT MAX(nr)+1 FROM #tbb6)) t.[DLTT] as
殊途同归
感谢这样的学习机会
能否在动态语句里 添加“自动编号”,借用了ch21st 道素大师的代码(借此感谢ch21st 道素大师),现在修改后如下:
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表 #tbb1 是当期预测前区红球与后区蓝球的记录一一组合,执行代码生成 #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1 --检查 select *from #tbb1
go
select
rtrim(a.id)AS ID,rtrim(a.Notext)AS NOTEXT,rtrim(right('0'+cast([no1] as varchar(10)),2)) AS NO1,rtrim(right('0'+cast([no2] as varchar(10)),2)) AS NO2,rtrim(right('0'+cast([no3] as varchar(10)),2)) AS NO3,rtrim(right('0'+cast([no4] as varchar(10)),2)) AS NO4,rtrim(right('0'+cast([no5] as varchar(10)),2)) AS NO5,ltrim(right('0'+cast([blu1] as varchar(10)),2))AS BLU1,ltrim(right('0'+cast([blu2] as varchar(10)),2)) AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表 #tbb3 设定条件值进行缩水, 执行代码生成 #tbb3 ************核心表!!!
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3 --检查 select *from #tbb3
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT ,ROW_NUMBER()OVER(ORDER BY GETDATE())RN,ROW_NUMBER()OVER(ORDER BY GETDATE())+(ROW_NUMBER()OVER(ORDER BY GETDATE())-1)/5-1 AS RN1
into #tbb3
From #tbb1
WHERE Notext like '%24%' OR Notext like '%25%' OR Notext like '%26%'
----->表 #tbb4 添加记录值的单位 执行代码生成 #tbb4 --检查 select *from #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select COUNT(*) AS qty, MAX(RN+(RN-1)/5-1) AS MaxNumber,
N'大乐透17067期单式投注' AS [name],LTRIM(COUNT(*)) +N'注' as num,LTRIM(2*COUNT(*))+N'元' as Rvalue,N'编号' AS [BHao]
into #tbb4 ----->表 #tbb4 添加记录值的单位 执行代码生成 #tbb4
from #tbb3 ---->表 #tbb3 设定条件值进行缩水的结果
----->结果5行记录分组,但在第三句代码里无法添加自动编号。
DECLARE @sql nvarchar(max)
SELECT @sql='
SELECT ISNULL(LTRIM(T2.notext),LTRIM(T3.BHao)) AS '+QUOTENAME(T3.name+t3.num+t3.Rvalue)+CHAR(13)
+N'FROM (select row_number()over(order by getdate()) as number from master..spt_values n1, master..spt_values n2 where n1.type=''P'' AND n2.type=n1.type and n1.number between 1 and 10000 and n2.number between 1 and 10000) as T1
INNER JOIN #tbb4 AS T3 ON 1=1
LEFT JOIN #tbb3 T2 ON T1.number=T2.RN1+2
WHERE T1.number<=t3.MaxNumber+2
'
FROM #tbb4 AS T3 ----->INNER JOIN表 #tbb4 添加记录值的单位 --> LEFT JOIN表 #tbb3 条件值进行缩水的结果
PRINT @sql
EXEC(@sql)
楼主自己修改的,菜鸟级的楼主无法在编号里完成自动填充编号!
同时请教:动态语句里能够完成自动编号吗?结贴后想继续学习一下,谢谢继续指教!
[/quote]----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表三 是表一记录与表二的记录一一组合,执行代码生成 table #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1
go
select
rtrim(a.id)AS ID,
rtrim(a.Notext)AS NOTEXT,
rtrim(a.no1)AS NO1,
rtrim(a.no2)AS NO2,
rtrim(a.no3)AS NO3,
rtrim(a.NO4)AS NO4,
rtrim(a.no5)AS NO5,
ltrim(b.blu1)AS BLU1,
ltrim(b.blu2)AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表四 设定条件值查询结果, 执行代码生成 table #tbb2
if object_id('tempdb.dbo.#tbb2') is not null drop table #tbb2
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT
into #tbb2
From #tbb1
WHERE Notext like '%24%' OR Notext like '%25%' OR Notext like '%26%' ----修改为“OR”
----->表五 统计出#tbb2的数量值 执行代码生成 table #tbb3
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3
SELECT COUNT(*) AS num
into #tbb3
FROM #tbb2
----->表六 添加记录值的单位 执行代码生成 table #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select (cast('' as varchar(50))+'大乐透 2017066期单式投注')as [name],
(cast(num as varchar(10))+'注')as num,(cast(num*2 as varchar(10))+'元') as Rvalue
into #tbb4
from #tbb3
----->表七 5个记录为一组 执行代码生成 table #tbb5
if object_id('tempdb.dbo.#tbb5') is not null drop table #tbb5
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) -1 RN
,*
FROM #tbb2
)
,Nrs
AS
(
SELECT TOP ((SELECT COUNT(1)+COUNT(1)/5 FROM Cte)) ROW_NUMBER()OVER(ORDER BY GETDATE())-1 AS Nr FROM sys.columns AS a,sys.columns AS b,sys.columns AS c,sys.columns AS d
)
SELECT ISNULL(LTRIM(T2.[NOTEXT]),'第'+RTRIM((T1.Nr+7)/6)+'组')AS [DLTT],T1.Nr into #tbb5
FROM Nrs T1
LEFT JOIN CTE T2 ON T1.Nr%6=T2.RN%5 AND T1.Nr/6=T2.RN/5
ORDER BY T1.Nr
----->需要的结果是5行记录分为一组,再编号“第N组”
DECLARE @sql nvarchar(max)
SELECT @sql=N'select '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+' from(SELECT t.[DLTT] as '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+N' ,Nr FROM #tbb5 AS t union SELECT ''第1组'',-1 )t order by t.Nr' FROM #tbb4 AS T4
EXEC(@sql)
大乐透 2017066期单式投注50注100元
-----------------------
第1组
07 20 24 25 26+01 07
07 20 24 25 28+01 07
07 20 24 25 34+01 07
07 20 24 25 35+01 07
07 20 24 26 32+01 07
第2组
07 20 24 27 34+01 07
07 20 24 28 29+01 07
07 20 24 28 34+01 07
07 20 24 28 35+01 07
07 20 24 29 30+01 07
第3组
07 20 24 25 26+04 07
07 20 24 25 28+04 07
07 20 24 25 34+04 07
07 20 24 25 35+04 07
07 20 24 26 32+04 07
第4组
07 20 24 27 34+04 07
07 20 24 28 29+04 07
07 20 24 28 34+04 07
07 20 24 28 35+04 07
07 20 24 29 30+04 07
第5组
07 20 24 25 26+06 07
07 20 24 25 28+06 07
07 20 24 25 34+06 07
07 20 24 25 35+06 07
07 20 24 26 32+06 07
第6组
07 20 24 27 34+06 07
07 20 24 28 29+06 07
07 20 24 28 34+06 07
07 20 24 28 35+06 07
07 20 24 29 30+06 07
第7组
07 20 24 25 26+07 09
07 20 24 25 28+07 09
07 20 24 25 34+07 09
07 20 24 25 35+07 09
07 20 24 26 32+07 09
第8组
07 20 24 27 34+07 09
07 20 24 28 29+07 09
07 20 24 28 34+07 09
07 20 24 28 35+07 09
07 20 24 29 30+07 09
第9组
07 20 24 25 26+07 11
07 20 24 25 28+07 11
07 20 24 25 34+07 11
07 20 24 25 35+07 11
07 20 24 26 32+07 11
第10组
07 20 24 27 34+07 11
07 20 24 28 29+07 11
07 20 24 28 34+07 11
07 20 24 28 35+07 11
07 20 24 29 30+07 11
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表 #tbb1 是当期预测前区红球与后区蓝球的记录一一组合,执行代码生成 #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1 --检查 select *from #tbb1
go
select
rtrim(a.id)AS ID,rtrim(a.Notext)AS NOTEXT,rtrim(right('0'+cast([no1] as varchar(10)),2)) AS NO1,rtrim(right('0'+cast([no2] as varchar(10)),2)) AS NO2,rtrim(right('0'+cast([no3] as varchar(10)),2)) AS NO3,rtrim(right('0'+cast([no4] as varchar(10)),2)) AS NO4,rtrim(right('0'+cast([no5] as varchar(10)),2)) AS NO5,ltrim(right('0'+cast([blu1] as varchar(10)),2))AS BLU1,ltrim(right('0'+cast([blu2] as varchar(10)),2)) AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表 #tbb3 设定条件值进行缩水, 执行代码生成 #tbb3 ************核心表!!!
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3 --检查 select *from #tbb3
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT ,ROW_NUMBER()OVER(ORDER BY GETDATE())RN,ROW_NUMBER()OVER(ORDER BY GETDATE())+(ROW_NUMBER()OVER(ORDER BY GETDATE())-1)/5-1 AS RN1
into #tbb3
From #tbb1
WHERE Notext like '%24%' OR Notext like '%25%' OR Notext like '%26%'
----->表 #tbb4 添加记录值的单位 执行代码生成 #tbb4 --检查 select *from #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select COUNT(*) AS qty, MAX(RN+(RN-1)/5-1) AS MaxNumber,
N'大乐透17067期单式投注' AS [name],LTRIM(COUNT(*)) +N'注' as num,LTRIM(2*COUNT(*))+N'元' as Rvalue,N'编号' AS [BHao]
into #tbb4 ----->表 #tbb4 添加记录值的单位 执行代码生成 #tbb4
from #tbb3 ---->表 #tbb3 设定条件值进行缩水的结果
----->结果5行记录分组,但在第三句代码里无法添加自动编号。
DECLARE @sql nvarchar(max)
SELECT @sql='
SELECT ISNULL(LTRIM(T2.notext),LTRIM(T3.BHao)) AS '+QUOTENAME(T3.name+t3.num+t3.Rvalue)+CHAR(13)
+N'FROM (select row_number()over(order by getdate()) as number from master..spt_values n1, master..spt_values n2 where n1.type=''P'' AND n2.type=n1.type and n1.number between 1 and 10000 and n2.number between 1 and 10000) as T1
INNER JOIN #tbb4 AS T3 ON 1=1
LEFT JOIN #tbb3 T2 ON T1.number=T2.RN1+2
WHERE T1.number<=t3.MaxNumber+2
'
FROM #tbb4 AS T3 ----->INNER JOIN表 #tbb4 添加记录值的单位 --> LEFT JOIN表 #tbb3 条件值进行缩水的结果
PRINT @sql
EXEC(@sql)
但执行结果如下,无法在编号里自动填充编号!
大乐透17067期单式投注50注100元
编号
07 20 24 25 26+01 07
07 20 24 25 28+01 07
07 20 24 25 34+01 07
07 20 24 25 35+01 07
07 20 24 26 32+01 07
编号
07 20 24 27 34+01 07
07 20 24 28 29+01 07
07 20 24 28 34+01 07
07 20 24 28 35+01 07
07 20 24 29 30+01 07
编号
07 20 24 25 26+04 07
07 20 24 25 28+04 07
07 20 24 25 34+04 07
07 20 24 25 35+04 07
07 20 24 26 32+04 07
编号
07 20 24 27 34+04 07
07 20 24 28 29+04 07
07 20 24 28 34+04 07
07 20 24 28 35+04 07
07 20 24 29 30+04 07
编号
07 20 24 25 26+06 07
07 20 24 25 28+06 07
07 20 24 25 34+06 07
07 20 24 25 35+06 07
07 20 24 26 32+06 07
编号
07 20 24 27 34+06 07
07 20 24 28 29+06 07
07 20 24 28 34+06 07
07 20 24 28 35+06 07
07 20 24 29 30+06 07
编号
07 20 24 25 26+07 09
07 20 24 25 28+07 09
07 20 24 25 34+07 09
07 20 24 25 35+07 09
07 20 24 26 32+07 09
编号
07 20 24 27 34+07 09
07 20 24 28 29+07 09
07 20 24 28 34+07 09
07 20 24 28 35+07 09
07 20 24 29 30+07 09
编号
07 20 24 25 26+07 11
07 20 24 25 28+07 11
07 20 24 25 34+07 11
07 20 24 25 35+07 11
07 20 24 26 32+07 11
编号
07 20 24 27 34+07 11
07 20 24 28 29+07 11
07 20 24 28 34+07 11
07 20 24 28 35+07 11
07 20 24 29 30+07 11
想要的结果是这样的
大乐透17067期单式投注50注100元
编号 1
07 20 24 25 26+01 07
07 20 24 25 28+01 07
07 20 24 25 34+01 07
07 20 24 25 35+01 07
07 20 24 26 32+01 07
编号 2
07 20 24 27 34+01 07
07 20 24 28 29+01 07
07 20 24 28 34+01 07
07 20 24 28 35+01 07
07 20 24 29 30+01 07
编号 3
07 20 24 25 26+04 07
07 20 24 25 28+04 07
07 20 24 25 34+04 07
07 20 24 25 35+04 07
07 20 24 26 32+04 07
编号 4
07 20 24 27 34+04 07
07 20 24 28 29+04 07
07 20 24 28 34+04 07
07 20 24 28 35+04 07
07 20 24 29 30+04 07
编号 5
07 20 24 25 26+06 07
07 20 24 25 28+06 07
07 20 24 25 34+06 07
07 20 24 25 35+06 07
07 20 24 26 32+06 07
编号 6
07 20 24 27 34+06 07
07 20 24 28 29+06 07
07 20 24 28 34+06 07
07 20 24 28 35+06 07
07 20 24 29 30+06 07
编号 7
07 20 24 25 26+07 09
07 20 24 25 28+07 09
07 20 24 25 34+07 09
07 20 24 25 35+07 09
07 20 24 26 32+07 09
编号 8
07 20 24 27 34+07 09
07 20 24 28 29+07 09
07 20 24 28 34+07 09
07 20 24 28 35+07 09
07 20 24 29 30+07 09
编号 9
07 20 24 25 26+07 11
07 20 24 25 28+07 11
07 20 24 25 34+07 11
07 20 24 25 35+07 11
07 20 24 26 32+07 11
编号 10
07 20 24 27 34+07 11
07 20 24 28 29+07 11
07 20 24 28 34+07 11
07 20 24 28 35+07 11
07 20 24 29 30+07 11
同时请教:动态语句里能够完成自动编号吗?万一不行的话,就换一种方式吧,谢谢!
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表三 是表一记录与表二的记录一一组合,执行代码生成 table #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1
go
select
rtrim(a.id)AS ID,
rtrim(a.Notext)AS NOTEXT,
rtrim(a.no1)AS NO1,
rtrim(a.no2)AS NO2,
rtrim(a.no3)AS NO3,
rtrim(a.NO4)AS NO4,
rtrim(a.no5)AS NO5,
ltrim(b.blu1)AS BLU1,
ltrim(b.blu2)AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表四 设定条件值查询结果, 执行代码生成 table #tbb2
if object_id('tempdb.dbo.#tbb2') is not null drop table #tbb2
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT
into #tbb2
From #tbb1
WHERE Notext like '%24%' OR Notext like '%25%' OR Notext like '%26%' ----修改为“OR”
----->表五 统计出#tbb2的数量值 执行代码生成 table #tbb3
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3
SELECT COUNT(*) AS num
into #tbb3
FROM #tbb2
----->表六 添加记录值的单位 执行代码生成 table #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select (cast('' as varchar(50))+'大乐透 2017066期单式投注')as [name],
(cast(num as varchar(10))+'注')as num,(cast(num*2 as varchar(10))+'元') as Rvalue
into #tbb4
from #tbb3
----->表七 5个记录为一组 执行代码生成 table #tbb5
if object_id('tempdb.dbo.#tbb5') is not null drop table #tbb5
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) -1 RN
,*
FROM #tbb2
)
,Nrs
AS
(
SELECT TOP ((SELECT COUNT(1)+COUNT(1)/5 FROM Cte)) ROW_NUMBER()OVER(ORDER BY GETDATE())-1 AS Nr FROM sys.columns AS a,sys.columns AS b,sys.columns AS c,sys.columns AS d
)
SELECT ISNULL(LTRIM(T2.[NOTEXT]),'第'+RTRIM((T1.Nr+7)/6)+'组')AS [DLTT],T1.Nr into #tbb5
FROM Nrs T1
LEFT JOIN CTE T2 ON T1.Nr%6=T2.RN%5 AND T1.Nr/6=T2.RN/5
ORDER BY T1.Nr
----->需要的结果是5行记录分为一组,再编号“第N组”
DECLARE @sql nvarchar(max)
SELECT @sql=N'select '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+' from(SELECT TOP ((SELECT MAX(nr) FROM #tbb5)) t.[DLTT] as '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+N' ,Nr FROM #tbb5 AS t union SELECT ''第1组'',-1 )t order by t.Nr' FROM #tbb4 AS T4
EXEC(@sql)
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表三 是表一记录与表二的记录一一组合,执行代码生成 table #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1
go
select
rtrim(a.id)AS ID,
rtrim(a.Notext)AS NOTEXT,
rtrim(a.no1)AS NO1,
rtrim(a.no2)AS NO2,
rtrim(a.no3)AS NO3,
rtrim(a.NO4)AS NO4,
rtrim(a.no5)AS NO5,
ltrim(b.blu1)AS BLU1,
ltrim(b.blu2)AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表四 设定条件值查询结果, 执行代码生成 table #tbb2
if object_id('tempdb.dbo.#tbb2') is not null drop table #tbb2
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT
into #tbb2
From #tbb1
WHERE Notext like '%24%' OR Notext like '%25%' OR Notext like '%26%' ----修改为“OR”
----->表五 统计出#tbb2的数量值 执行代码生成 table #tbb3
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3
SELECT COUNT(*) AS num
into #tbb3
FROM #tbb2
----->表六 添加记录值的单位 执行代码生成 table #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select (cast('' as varchar(50))+'大乐透 2017066期单式投注')as [name],
(cast(num as varchar(10))+'注')as num,(cast(num*2 as varchar(10))+'元') as Rvalue
into #tbb4
from #tbb3
----->表七 5个记录为一组 执行代码生成 table #tbb5
if object_id('tempdb.dbo.#tbb5') is not null drop table #tbb5
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) -1 RN
,*
FROM #tbb2
)
,Nrs
AS
(
SELECT TOP ((SELECT COUNT(1)+COUNT(1)/5 FROM Cte)) ROW_NUMBER()OVER(ORDER BY GETDATE())-1 AS Nr FROM sys.columns AS a,sys.columns AS b,sys.columns AS c,sys.columns AS d
)
SELECT ISNULL(LTRIM(T2.[NOTEXT]),'第'+RTRIM(T1.Nr/5)+'组')AS [DLTT],T1.Nr into #tbb5
FROM Nrs T1
LEFT JOIN CTE T2 ON T1.Nr%6=T2.RN%5 AND T1.Nr/6=T2.RN/5
ORDER BY T1.Nr
----->需要的结果是5行记录分为一组,再编号“第N组”
DECLARE @sql nvarchar(max)
SELECT @sql=N'select '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+' from(SELECT TOP ((SELECT MAX(nr) FROM #tbb5)-1) t.[DLTT] as '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+N' ,Nr FROM #tbb5 AS t union SELECT ''第1组'',-1 )t order by t.Nr' FROM #tbb4 AS T4
EXEC(@sql)
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表三 是表一记录与表二的记录一一组合,执行代码生成 table #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1
go
select
rtrim(a.id)AS ID,
rtrim(a.Notext)AS NOTEXT,
rtrim(a.no1)AS NO1,
rtrim(a.no2)AS NO2,
rtrim(a.no3)AS NO3,
rtrim(a.NO4)AS NO4,
rtrim(a.no5)AS NO5,
ltrim(b.blu1)AS BLU1,
ltrim(b.blu2)AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表四 设定条件值查询结果, 执行代码生成 table #tbb2
if object_id('tempdb.dbo.#tbb2') is not null drop table #tbb2
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT
into #tbb2
From #tbb1
WHERE Notext like '%24%' OR Notext like '%25%' OR Notext like '%26%' ----修改为“OR”
----->表五 统计出#tbb2的数量值 执行代码生成 table #tbb3
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3
SELECT COUNT(*) AS num
into #tbb3
FROM #tbb2
----->表六 添加记录值的单位 执行代码生成 table #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select (cast('' as varchar(50))+'大乐透 2017066期单式投注')as [name],
(cast(num as varchar(10))+'注')as num,(cast(num*2 as varchar(10))+'元') as Rvalue
into #tbb4
from #tbb3
----->表七 5个记录为一组 执行代码生成 table #tbb5
if object_id('tempdb.dbo.#tbb5') is not null drop table #tbb5
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) -1 RN
,*
FROM #tbb2
)
,Nrs
AS
(
SELECT TOP ((SELECT COUNT(1)+COUNT(1)/5 FROM Cte)) ROW_NUMBER()OVER(ORDER BY GETDATE())-1 AS Nr FROM sys.columns AS a,sys.columns AS b,sys.columns AS c,sys.columns AS d
)
SELECT ISNULL(LTRIM(T2.[NOTEXT]),'第'+RTRIM(T1.Nr%5+2)+'组')AS [DLTT],T1.Nr into #tbb5
FROM Nrs T1
LEFT JOIN CTE T2 ON T1.Nr%6=T2.RN%5 AND T1.Nr/6=T2.RN/5
ORDER BY T1.Nr
----->需要的结果是5行记录分为一组,再编号“第N组”
DECLARE @sql nvarchar(max)
SELECT @sql=N'select '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+' from(SELECT t.[DLTT] as '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+N' ,Nr FROM #tbb5 AS t union SELECT ''第1组'',-1 )t order by t.Nr' FROM #tbb4 AS T4
EXEC(@sql)
这时有10组的结果,应该是第1组——第10组,但实际结果如同楼主#3 描述。要的不是第1 /2 /3 /4 /5 /6 /2 /3 /4 /5 /6组,求解中.......
大乐透 2017066期单式投注25注50元
............
............
07 20 24 25 35+07 09
07 20 24 26 32+07 09
第5组
07 20 24 25 26+07 11
07 20 24 25 28+07 11
07 20 24 25 34+07 11
07 20 24 25 35+07 11
07 20 24 26 32+07 11
第6组
请教:有办法让这个“第6组”不要出现吗?期盼着......
----表一(数据库已经建立该表)
if object_id('tempdb..#DLT2017066') is not null drop table #DLT2017066
go
create table #DLT2017066([id] int,[Notext] varchar(17),[NO1] varchar(2),[NO2] varchar(2),[NO3] varchar(2),[NO4] varchar(2),[NO5] varchar(2) )
insert #DLT2017066
select '224766','07 20 23 33 35','07','20','23','33','35' union all
select '224768','07 20 24 25 26','07','20','24','25','26' union all
select '224770','07 20 24 25 28','07','20','24','25','28' union all
select '224776','07 20 24 25 34','07','20','24','25','34' union all
select '224777','07 20 24 25 35','07','20','24','25','35' union all
select '224783','07 20 24 26 32','07','20','24','26','32' union all
select '224793','07 20 24 27 34','07','20','24','27','34' union all
select '224795','07 20 24 28 29','07','20','24','28','29' union all
select '224800','07 20 24 28 34','07','20','24','28','34' union all
select '224801','07 20 24 28 35','07','20','24','28','35' union all
select '224802','07 20 24 29 30','07','20','24','29','30'
----表二(数据库已经建立该表)
if object_id('tempdb.dbo.#BLU') is not null drop table #BLU
go
create table #BLU([blu1] varchar(2),[blu2] varchar(2))
insert #BLU
select '01','07' union all
select '04','07' union all
select '06','07' union all
select '07','09' union all
select '07','11'
---->表三 是表一记录与表二的记录一一组合,执行代码生成 table #tbb1
if object_id('tempdb.dbo.#tbb1') is not null drop table #tbb1
go
select
rtrim(a.id)AS ID,
rtrim(a.Notext)AS NOTEXT,
rtrim(a.no1)AS NO1,
rtrim(a.no2)AS NO2,
rtrim(a.no3)AS NO3,
rtrim(a.NO4)AS NO4,
rtrim(a.no5)AS NO5,
ltrim(b.blu1)AS BLU1,
ltrim(b.blu2)AS BLU2 into #tbb1
from #DLT2017066 a,#BLU b --检查 select *from #DLT2017066 检查 select *from #BLU
---->表四 设定条件值查询结果, 执行代码生成 table #tbb2
if object_id('tempdb.dbo.#tbb2') is not null drop table #tbb2
Select NOTEXT+'+'+BLU1+' '+BLU2 AS NOTEXT
into #tbb2
From #tbb1
WHERE Notext like '%24%'and Notext like '%25%' or Notext like '%26%'
----->表五 统计出#tbb2的数量值 执行代码生成 table #tbb3
if object_id('tempdb.dbo.#tbb3') is not null drop table #tbb3
SELECT COUNT(*) AS num
into #tbb3
FROM #tbb2
----->表六 添加记录值的单位 执行代码生成 table #tbb4
if object_id('tempdb.dbo.#tbb4') is not null drop table #tbb4
select (cast('' as varchar(50))+'大乐透 2017066期单式投注')as [name],
(cast(num as varchar(10))+'注')as num,(cast(num*2 as varchar(10))+'元') as Rvalue
into #tbb4
from #tbb3
----->表七 5个记录为一组 执行代码生成 table #tbb5
if object_id('tempdb.dbo.#tbb5') is not null drop table #tbb5
;WITH CTE AS(
SELECT ROW_NUMBER()OVER(ORDER BY GETDATE()) -1 RN
,*
FROM #tbb2
)
,Nrs
AS
(
SELECT TOP ((SELECT COUNT(1)+COUNT(1)/5 FROM Cte)) ROW_NUMBER()OVER(ORDER BY GETDATE())-1 AS Nr FROM sys.columns AS a,sys.columns AS b,sys.columns AS c,sys.columns AS d
)
SELECT ISNULL(LTRIM(T2.[NOTEXT]),'第'+RTRIM(T1.Nr%5+2)+'组')AS [DLTT],T1.Nr into #tbb5
FROM Nrs T1
LEFT JOIN CTE T2 ON T1.Nr%6=T2.RN%5 AND T1.Nr/6=T2.RN/5
ORDER BY T1.Nr
----->需要的结果是5行记录分为一组,再编号“第N组”
DECLARE @sql nvarchar(max)
SELECT @sql=N'select '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+' from(SELECT t.[DLTT] as '+QUOTENAME(T4.name+t4.num+t4.Rvalue)+N' ,Nr FROM #tbb5 AS t union SELECT ''第1组'',-1 )t order by t.Nr' FROM #tbb4 AS T4
EXEC(@sql)