[英]Transforming data taken from Access in SQL Server 2008 R2
我有一個包含兩列的Access表:[ID]和[Name]。 這里有超過3000行的數據。 目前,我已經將表格復制並粘貼到一個.txt文件中,該文件需要存放在該文件中。
數據外觀示例:
A0001 esfesef fgrdgdrd
A0002 fsefgeses
A0003 safefesf
A0004 vsdrdsrfgsd
A0006 adfaasadsa
A0007 sefse gdsgfd
A0008 wafregsre grdsgr
A0009 sdfsfs ffd
A0010 sfesfe grgrds
A0011 sdf fsfgdsf
A0012 esdgf gsg
A0013 gdrs as gsdfd
A0014 ddsfgb gtrew asfd
A0015 ghdssdf
A0016 sadsaf
A0017 sjhdhj ahumds shsh
我需要以編程方式執行以下操作:
復制每一行,但在ID和Description(結束標記)之前插入/
將每個記錄包裝在<>
標記中
所以這就是數據的樣子:
<A0001><esfesef fgrdgdrd>
</A0001></esfesef fgrdgdrd>
<A0002><fsefgeses>
</A0002></fsefgeses>
<A0003><safefesf>
</A0003></safefesf>
<A0004><vsdrdsrfgsd>
</A0004></vsdrdsrfgsd>
<A0006><adfaasadsa>
</A0006></adfaasadsa>
<A0007><sefse gdsgfd>
</A0007></sefse gdsgfd>
<A0008><wafregsre grdsgr>
</A0008></wafregsre grdsgr>
<A0009><sdfsfs ffd>
</A0009></sdfsfs ffd>
<A0010><sfesfe grgrds>
</A0010></sfesfe grgrds>
<A0011><sdf fsfgdsf>
</A0011></sdf fsfgdsf>
<A0012><esdgf gsg>
</A0012></esdgf gsg>
<A0013><gdrs as gsdfd>
</A0013></gdrs as gsdfd>
<A0014><ddsfgb gtrew asfd>
</A0014></ddsfgb gtrew asfd>
<A0015><ghdssdf>
</A0015></ghdssdf>
<A0016><sadsaf>
</A0016></sadsaf>
<A0017><sjhdhj ahumds shsh>
</A0017></sjhdhj ahumds shsh>
我可以將數據放入Excel電子表格,然后通過SQL Server 2008 R2連接到該電子表格以執行查詢,然后將結果復制到.txt(這是數據最終需要駐留的位置)。
是否有人對轉換此數據有任何想法,所以我不必更新.txt文件中的每個記錄?
您的要求可以這樣完成:
WITH CTE AS
(
SELECT
ID, 1 AS RN, '<' + ID + '><' + Name + '>' AS Tag
FROM Table1
UNION
SELECT
ID, 2 AS RN, '</' + ID + '></' + Name + '>' AS Tag
FROM Table1
)
SELECT Tag FROM CTE
ORDER BY ID,RN
但是,如果這些是有效的xml標記,您實際上可能要在關閉行中切換標記的順序?
WITH CTE AS
(
SELECT
ID, 1 AS RN, '<' + ID + '><' + Name + '>' AS Tag
FROM Table1
UNION
SELECT
ID, 2 AS RN, '</' + Name + '></' + ID + '>' AS Tag
FROM Table1
)
SELECT Tag FROM CTE
ORDER BY ID,RN
另外,單行也可能適合您?
SELECT '<' + ID + '><' + Name + '></' + Name + '></' + ID + '>' AS Tag FROM Table1
我不確定為什么要麻煩將數據轉儲到Excel,然后在SQL Server中進行處理,因為您可以在Access本身中做同樣的事情:
SELECT lineOut
FROM
(
SELECT ID, 1 AS Seq, "<" & ID & "><" & [Name] & ">" AS lineOut
FROM Table1
UNION ALL
SELECT ID, 2 AS Seq, "</" & [Name] & "></" & ID & ">" AS lineOut
FROM Table1
ORDER BY 1, 2
)
只需保存該查詢,然后將其導出為文本文件即可。 (請注意,我交換了結束標記的順序以使其正確匹配。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.