資料記錄分多行處理(sqlserver)

2021-10-07 18:08:50 字數 1927 閱讀 5481

將一條記錄處理成多行。

1、需要提取charge_code中位於"|"和";"之間的內容。

2、如果一條記錄中有多個符合要求,分行,且保持其它字段內容一致。

最終結果如下:

資料庫:sqlserver。(只對sqlserver有效,非標準sql語句)

-- ----------------------------

-- table structure for test_temp

-- ----------------------------

if exists (select * from sys.all_objects where object_id = object_id(n'[dbo].[test_temp]') and type in ('u'))

drop table [dbo].[test_temp]

gocreate table [dbo].[test_temp] (

[charge_code] varchar(256) collate chinese_prc_ci_as null,

[exec_date] datetime null)go

alter table [dbo].[test_temp] set (lock_escalation = table)

go-- ----------------------------

-- records of [test_temp]

-- ----------------------------

insert into [dbo].[test_temp] values (n'士abcd大夫|123456;超聲**報告|5645;', n'2020-07-03 19:58:13.183')

goinsert into [dbo].[test_temp] values (n'士123ad大夫|126f3456;超聲圖as文報告|56qd45;', n'2020-07-03 19:58:39.863')

goinsert into [dbo].[test_temp] values (n'士123ad大夫|as125;', n'2020-07-03 20:32:10.560')

go-- ----------------------------

-- 查詢結果進行比對

-- ----------------------------

select * from test_temp;

select tab3.exec_date,

--tab3.chargecode,

substring(tab3.chargecode, 0, charindex(';', tab3.chargecode)) as charge_code

from

( select tab1.exec_date,

substring(tab1.charge_code, tab2.number, charindex('|', tab1.charge_code + '|', tab2.number) - tab2.number) as chargecode,

tab2.number

from test_temp tab1

join master..spt_values tab2

on tab2.type = 'p'

where charindex('|', '|' + tab1.charge_code, tab2.number) = tab2.number

and tab2.number <> 1

) tab3;

處理多行輸入資料

要求如上圖,如下 include include include 要使用stringstream,必須先加入這一行 using namespace std int main cout sum endl getline使用時可以接受空格並輸出,同時可以指定分隔符 getline ss,temp,參考資...

awk處理多行文字的記錄

awk使用內建的變數rs將輸入流拆分為乙個個記錄 record 使用fs將乙個記錄拆分為若干個域 field rs的預設值為 n,fs的預設值為空白字元。有時候會出現乙個記錄跨越多行的情況,這時就需要手動設定rs為記錄中不會出現的字元 否則會將乙個記錄拆分為兩個記錄 如空行 rs 分頁符 rs f ...

HBASE多行轉列冷資料處理

背景及介紹詳見 鏈冷熱資料處理實踐 方案主要包含讀寫兩塊,寫是第一步,因為pg是行資料,而hbase是列資料,而且在做資料同步的同時,還要考慮怎樣的資料結構可以方便資料讀取,不僅僅如此,因為乙個主單會對應多條明細,而查詢的時候需要根據單號撈取相關的明細資料,最終通過不斷嘗試,梳理出以下可執行方案 行...