sql 如何将一条记录查成多条

表里有这样一条记录

山东 0.8 全部 7
---------------------------------------------- 怎么变成下面

山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
山东 0.8 全部 7
---------------------------------------------------
下面7条记录都是根据第一条的那个7循环的。也就是说7那个字段不管整数是多少,下面就会有多少记录。
如果是8下面就会有八条记录。是9就会有9条记录。 我是做查询不是想做新增。就是想把本来是一条结果集的记录,查询一下变成多条。

和你之前的问题类型,能告诉我你怎么做的吗

sqlserver写法

创建测试表

create table t
(col1 varchar(10),
col2 numeric(10,1),
col3 varchar(10),
col4 int)

insert into t values ('山东',0.8,'全部',7)

执行

select t.* from t,
(select number from master..spt_values where number between 1 and (select max(col4) from t) and type='P') t2

结果


其他数据库可能写法不同

追问

select number from master..spt_values where number between 1 这一段什么意思啊

追答

select number from master..spt_values where number type='P'

你把这句单独运行一下就知道了,就是取出7行数据,然后和主表笛卡儿积,最后得到7条记录

追问

oracle 中运行不了

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-11
这个很简单,先查询得到一条信息,然后变量保存下来,用FOR循环,你查询是几,那就循环几次,这样信息就可以重复7次显示追问

能不能给我案例看下

第2个回答  2014-09-11
SELECT * FROM DATETEST
SELECT
TOP 100 ID=IDENTITY(int,1,1) into #
FROM syscolumns a,syscolumns b,syscolumns c

select
a.name
from
表名 a,# b
where a.time>=b.ID

drop table #追问

这是什么意思,不太明白,能说下吗

sql 如何将一条记录查成多条
select * from 表名 where time=(select time from 表名)不过这个如果time数据挺多就麻烦了

SQL中如何将查询出的1条记录显示成10条记录
select a,a,a,a,a,a,a,a,a,a from a_file where b in('1')

sqlplus 如何将一条记录分多行显示,每字段一行?
回答:需要以下结果的:SQL > select id,name,user,class from dbname;结果:id : 1name : zhanguser : kkclass : 1 id : 2 name : liuser : ggclass 2

sql 如何将一条记录查成多条
创建测试表 create table t(col1 varchar(10),col2 numeric(10,1),col3 varchar(10),col4 int)insert into t values ('山东',0.8,'全部',7)执行 select t.* from t,(select number from master..spt_values where number between 1 and (select max(col4) from t) and type='P')...

求SQL文,如何把单条日期范围的记录,转化为范围内每天的记录(多条)。
需要一个C表,C表里面的记录为 eachDay 2013-05-10 2013-05-11 2013-05-12 --B表语句为:DELETE FROM B; --先删除,然后统一插入 INSERT INTO B SELECT c.eachDay,count(1) FROM A JOIN C ON C.eachDay between A.StartDay AND A.EndDay Group by c.eachDay --如果只是需要更新...

sql如何将一条内容包含空格的记录拆分成多条记录
查找字符串在程序语言中一般用indexOf方法,截取一般用Substring方法,SQL SERVER中有SUBSTRING函数用来截取字符串,但是没有indexOf查找函数,取而代之的是CHARINDEX和PATINDEX函数,CHARINDEX用于完全匹配查找,而PATINDEX用于模糊匹配查找,根据我们的需求,选用CHARINDEX函数,整个SPLIT函数代码如下:CREATE ...

如何在SQL中用存储过程把一条记录按数量转换为多条记录显示?
取出数量来,建立临时表,将数量递减做为循环条件,或者直接用数量递减做为游标条件,一条一条取出来以后,写到临时表中,然后显示临时表的数据,再删除临时表。

SQL 一条查询语句 查多条信息
用union all连接

oracle sql 将一条记录复制拆分成多条,怎样按条件执行循环
用oracle start with connect by 可以实现。oracle start with connect by 用法oracle 提供了start with connect by 语法结构可以实现递归查询。1. 一个简单举例:SQL> select * from test;BILL_MONTH DAY_NUMBER MSISDN --- --- --- 200803 1 13800 200803 3 13800 200803 2 13800...

求高手,用SQL怎样将数据表中一个条记录中的三个字段转换为多条记录?
Jseven_jy的方法, UNION 的地方, 变为 UNION ALL 就可以了。也就是:(select 字段1, 字段4 from 源表 ) union all (select 字段2 as 字段1, 字段4 from 源表) union all (select 字段3 as 字段1, 字段4 from 源表)因为使用 union ,会把重复的合并掉。union all 不合并重复的...

相似回答