Ⅰ sql查询将一条数据分成多条
select 用户NO,部门1 from table1 where 用户NO='001' union all
select 用户NO,部门2 from table1where 用户NO='001' union all
select 用户NO,部门3 where 用户NO='001'
Ⅱ 把一个表的数据拆成两个,这个sql语句该怎么写
使用Oracle的substr函数;
substr(字符串,截取开始位置,截取长度)
substr('Hello World',2,4) //返回结果为 'ello'
Ⅲ sql数据库 根据一个字段的值 拆分成两个字段
省和市之间是有 空格分隔的对吗?
如果是的话 你可以截取啊
先判断空格的位置 position(' 'in column_name)
再截取字符串就可以了
substr(column_name,1,position('' in column_name)) --省
substr(column_name,position('' in column_name)+1) --市
Ⅳ sql server 表中一条记录分成2条显示(把login字段分隔开)
--修改table_name表名称
declare@svarchar(100),@sqlvarchar(1000)
select@s=loginfromtable_name
set@sql='selectlogin='''+replace(@s,',',''',工单号,事件类别,摘要,内容描述fromtable_nameunionallselect''')+''''
set@sql=@sql+',工单号,事件类别,摘要,内容描述'
PRINT@sql
exec(@sql)
Ⅳ 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
200803 2 13801
200803 4 13804
200803 5 13804
200803 7 13804
200803 8 13804
200803 6 13802
200803 6 13801
200803 7 13801
200803 8 13801
12 rows selected
SQL> select * from test
2 start with day_number=1
3 connect by prior day_number=day_number-1 and prior msisdn= msisdn
4 ;
BILL_MONTH DAY_NUMBER MSISDN
-------------------- ---------- --------------------
200803 1 13800
200803 2 13800
200803 3 13800
上面的语句查找出了从1开始,并且day_number 逐渐+1 递增的,并且 msisdn 相同的哪些个数据.
Ⅵ 求助SQL语句,要把一张表拆成2张表!
销售主表
select distinct 单据号,单据日期,客户名称,备注 from 销售表
销售子表
select 单据号,商品名称,规格型号,数量,单价,金额 from 销售表 order by 单据号
SID,FID从哪里来的?
Ⅶ 用SQL查询分析器查询时怎么把一个字段用“|”分割成多个
一般来讲都是从程序读取出来数据后在进行分割。
如果你非要从数据库查询出来就分割好,在sql server下只能去写split函数
if object_id(’f_split’) is not null
drop function f_split
go
create function f_split(@aString varchar(8000),@pattern varchar(10))
returns @temp table(a varchar(100))
--实现split功能 的函数
--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :
as
begin
declare @i int
set @aString=rtrim(ltrim(@aString))
set @i=charindex(@pattern,@aString)
while @i>=1
begin
insert @temp values(left(@aString,@i-1))
set @aString=substring(@aString,@i+1,len(@aString)-@i)
set @i=charindex(@pattern,@aString)
end
if @aString<>’’
insert @temp values(@aString)
return
end
--在下上述代码,然后就可以用了,例子:
select * from dbo.f_split(’0|418001|418002|418002’,’|’)