Ⅰ 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』,』|』)