SQL语句中column的意思和常用法 是怎么的 ??? 谢谢 麻烦解释下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句中column的意思和常用法 是怎么的 ??? 谢谢 麻烦解释下相关的知识,希望对你有一定的参考价值。

sql:column() 函数 (XQuery)

如主题在 XML 内部绑定关系数据中所述,当使用 XML 数据类型方法在 XQuery 内显示关系值时,可以使用 sql:column(() 函数。

例如,使用 query() 方法(XML 数据类型)对存储在变量或 xml 类型列中的 XML 实例指定查询。有时,您可能还希望查询使用其他非 XML 列中的值同时引入关系数据和 XML 数据。若要达到此目的,请使用 sql:column() 函数。

SQL 值将映射到相应的 XQuery 值,其类型将为 XQuery 基类型,等效于相应的 SQL 类型。

语法

sql:column("columnName")
注释
请注意,引用在 XQuery 的 sql:column() 函数中指定的列是指引用正在处理的行中的列。

在 SQL Server 中,仅可在 XML-DML 插入语句源表达式的上下文中引用 xml 实例,否则无法引用 xml 类型的列或 CLR 用户定义类型的列。

JOIN 操作不支持 sql:column() 函数。可改用 APPLY 操作。

示例
A. 使用 sql:column() 检索 XML 中的关系值
在构造 XML 时,下面的示例说明了如何从非 XML 关系列中检索值以绑定 XML 数据和关系数据。

该查询将构造如下形式的 XML 内容:

复制代码
<Product ProductID="771" ProductName="Mountain-100 Silver, 38" ProductPrice="3399.99" ProductModelID="19"
ProductModelName="Mountain 100" />
请注意构造的 XML 中的下列内容:

从 Product 表中获取的 ProductID、ProductName 和 ProductPrice 属性值。

从 ProductModel 表中检索的 ProductModelID 属性值。

若要使查询更加有趣,可以从 xml 类型列 CatalogDescription 中获取 ProductModelName 属性值。由于未存储所有产品型号的 XML 产品型号目录信息,因此将使用 if 语句检索该值(如果存在)。
复制代码
SELECT P.ProductID, CatalogDescription.query('
declare namespace pd="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
<Product
ProductID= " sql:column("P.ProductID") "
ProductName= " sql:column("P.Name") "
ProductPrice= " sql:column("P.ListPrice") "
ProductModelID= " sql:column("PM.ProductModelID") " >
if (not(empty(/pd:ProductDescription))) then
attribute ProductModelName /pd:ProductDescription[1]/@ProductModelName
else
()

</Product>
') as Result
FROM Production.ProductModel PM, Production.Product P
WHERE PM.ProductModelID = P.ProductModelID
AND CatalogDescription is not NULL
ORDER By PM.ProductModelID
请注意上述查询的以下方面:

由于从两个不同的表检索值,因此 FROM 子句指定两个表。WHERE 子句中的条件用于筛选结果,并只检索产品型号具有目录说明的产品。

XQuery Prolog 中的关键字 namespace 用于定义查询主体中使用的 XML 命名空间前缀“pd”。请注意,表别名(“P”和“PM”)是在查询本身的 FROM 子句中定义的。

sql:column() 函数用于将非 XML 值引入 XML。

下面是部分结果:

复制代码
ProductID Result
-----------------------------------------------------------------
771 <Product ProductID="771" ProductName="Mountain-100 Silver, 38"
ProductPrice="3399.99" ProductModelID="19"
ProductModelName="Mountain 100" />
...
下面的查询构造了包含产品特定信息的 XML。此信息包括 ProductID、ProductName、ProductPrice 以及属于特定产品型号 (ProductModelID=19) 的所有产品的 ProductModelName(如果有)。然后,将 XML 分配给 xml 类型的 @x 变量。

复制代码
declare @x xml
SELECT @x = CatalogDescription.query('
declare namespace pd="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
<Product
ProductID= " sql:column("P.ProductID") "
ProductName= " sql:column("P.Name") "
ProductPrice= " sql:column("P.ListPrice") "
ProductModelID= " sql:column("PM.ProductModelID") " >
if (not(empty(/pd:ProductDescription))) then
attribute ProductModelName /pd:ProductDescription[1]/@ProductModelName
else
()

</Product>
')
FROM Production.ProductModel PM, Production.Product P
WHERE PM.ProductModelID = P.ProductModelID
And P.ProductModelID = 19
select @x

参考资料:http://technet.microsoft.com/zh-cn/ms191214.aspx

参考技术A http://zhidao.baidu.com/question/87535777.html?si=1

sql语句:怎么把一列表里面包含某个字符都改成另外一个字符,就像word里面的替换功能一样的语句

sql语句:怎么把一列表里面包含某个字符都改成另外一个字符,就像word里面的替换功能一样的语句 比如我要把人员表里 工号这一列,所有包含ABC的值,把ABC 替换成123, 如:ABC789 执行语句后替换成123789?

参考技术A update table_name set column=replace(column,'ABC','123')追问

提示关键字'column'附近有语法错误这个column 是什么意思,

追答

列名~~你把表名跟列名都换成你自己的撒 table_name 是表名

本回答被提问者采纳
参考技术B update 人员表 set 工号=replace(工号,'ABC','123')

我擦,一回头一看来个缺心眼的热心网友
他那个你别用哈,用完了你都改不回来追问

呵呵,谢谢,我备份好了的

追答

恩,有备份就行
column就代表列名,也就是你说的工号那列
table_name 就是表名,你都换成你自己的列名表名就OK

参考技术C update 表名称 SET 列名 ='123' WHERE 列名 like'%ABC%'

以上是关于SQL语句中column的意思和常用法 是怎么的 ??? 谢谢 麻烦解释下的主要内容,如果未能解决你的问题,请参考以下文章

SQL中like的用法

SQL语句中的declare 是啥意思,具体怎么用啊

sql语句中in的用法

SQL中like的用法

sql语句里面的union是啥意思

若sql语句中order by指定了多个字段,则怎么排序?