2015-03-25 46 views
0

我的SQL Server数据库具有以下样本保存在varchar字段整个CSV文件的数据,如:从CSV转换为XML在SQL

StudentName,Field1,Field2,...,Fieldn 
Homer,somevalue,somevalue,...,somevalue 
Elmer,somevalue,somevalue,...,somevalue 

我要检索的数据并将其转换为HTML脚本给出的以下示例:

<grade> 
    <StudentName name='Homer'> 
    </StudentName> 
    <StudentName name='Elmer'> 
    </StudentName> 
</grade> 

我可以直接使用SQL select语句吗?如果不是,那么最有效的方法是什么?

+0

DUPLI:http://stackoverflow.com/questions/6328010/how -to-convert-data-base-data-to-xml-file – tharif 2015-03-25 10:16:01

+0

@a_horse_with_no_name SQL Server – 2015-03-25 11:04:34

+0

您可以尝试使用许多现有的SQL Server'split'函数,如下所述:http://stackoverflow.com/questions/697519 /分功能等效功能于T-SQL。然后,您可以使用FOR XML来转换该XML。尝试这种方法并回发任何具体问题。你为什么想这样做? – 2015-03-25 11:27:28

回答

0
select concat('<grade>',t1.stmt,'</grade>' from (select concat('<StudentName name=''', t.studentname, 
       '''> </StudentName>') as stmt 
from MytableName t) t1 

注意:你可以使用任何机制来连接结果并用concat替换。

更新:

如果你的每一行保存在不同的领域,那么你可以使用charindex和T-SQL的left得到名称

+0

我没有学生表MyTableName,整个csv作为一个varchar存储在数据库,标题和所有内容中。 – 2015-03-25 10:27:23

+0

你正在使用哪个数据库? – 2015-03-25 10:30:50

+0

使用Sql Server – 2015-03-25 10:33:47