SQL Server 2005中XML数据类型列值的子字符串

时间:2009-08-06 09:19:10

标签: xml sql-server-2005 substring

我在SQL server 2005的数据库中有一个表。该列的一个是XML数据类型。列的内容就像

   <info>This is a sample information .Anyone can help </info>

现在我想查询表中的数据,并将列值的一部分作为响应。 即:我想要的输出是“这是一个样本”

查询应该是什么?子串正在抛出错误

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到:

1)从XML中检索整个文本,然后让SQL从中获取子字符串:

SELECT SUBSTRING(tablename.columnname.value('(/info)[1]', 'varchar(max)'), 1, 17)

2)让XQuery直接从XML文本中获取子字符串:

SELECT tablename.columnname.value('substring(string((/info)[1]), 1, 17)')