分隔值我有一個像從數據列
I~A~G~S
我怎麼可以使用select查詢它們分開與數據的列。
輸出: 更新
Rows Column(Data)
First I
Second A
Third G
Fourth S
分隔值我有一個像從數據列
I~A~G~S
我怎麼可以使用select查詢它們分開與數據的列。
輸出: 更新
Rows Column(Data)
First I
Second A
Third G
Fourth S
如果喲ü正在使用Oracle數據庫,那麼它應該是如下:
select replace('I~A~G~S','~',' ') as x from dual;
select replace(<fieldname>,'~',' ') from <tablename>
爲不同行分割字符串,請檢查下面的查詢問題。
SELECT trim(regexp_substr(replace('I~A~G~S','~',','), '[^,]+', 1, LEVEL)) str_2_tab
FROM dual
CONNECT BY LEVEL <= regexp_count(replace('I~A~G~S','~',','), ',')+1;
非常感謝! –
不客氣。 如果答案已回答您的所有問題,請標記爲已回答。 thnxs – Shann
我們可以將I〜A〜G〜S分解爲不同的變量,如收入= I,年齡= A,性別= G和國家= S; –
declare @s varchar(10)
set @s='I~A~G~S'
select replace(@s,'~',' ')
爲updated question
create table #vij11 (s varchar(100))
insert into #vij11(s) values ('I~A~G~S')
SELECT
Split.a.value('.', 'VARCHAR(100)') AS String
FROM (SELECT [s],
CAST ('<M>' + REPLACE([s], '~', '</M><M>') + '</M>' AS XML) AS String
FROM #vij11) AS A CROSS APPLY String.nodes ('/M') AS Split(a);
我可以得到相同的值不同-2行。像我在第一排,然後在第二排A。 –
你的意思是?像I A G S * 2 –
第一行I,第二行A,第三行G,第四行S –
這是你所期待的嗎? 選擇替換('I〜A〜G〜S','〜','')爲x; 你可以在oracle中使用replace函數。你用空格替換〜。 – Shann
可能的重複http://stackoverflow.com/questions/18770581/oracle-split-multiple-comma-separated-values-in-oracle-table-to-multiple-rows – Noel