Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL server 2005中XML数据类型列值的子字符串_Xml_Sql Server 2005_Substring - Fatal编程技术网

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

SQL server 2005中XML数据类型列值的子字符串,xml,sql-server-2005,substring,Xml,Sql Server 2005,Substring,我在SQL server 2005的数据库中有一个表。其中一列是XML数据类型的 <info>This is a sample information .Anyone can help </info> 这是一个示例信息。任何人都可以提供帮助 现在我想用列值的一部分作为响应查询表中的数据。 ie:我想要的输出是“这是一个样本” 问题应该是什么?子字符串抛出错误有两种方法: 1) 从XML中检索整个文本,然后让SQL从中获取子字符串: SELECT SUBSTRIN

我在SQL server 2005的数据库中有一个表。其中一列是XML数据类型的

   <info>This is a sample information .Anyone can help </info>
这是一个示例信息。任何人都可以提供帮助
现在我想用列值的一部分作为响应查询表中的数据。 ie:我想要的输出是“这是一个样本”


问题应该是什么?子字符串抛出错误有两种方法:

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)')

有两种方法可以做到这一点:

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)')