SQL语句中column的意思和常用法 是怎么的 ??? 谢谢 麻烦解释下
发布网友
发布时间:2022-04-07 21:48
我来回答
共2个回答
热心网友
时间:2022-04-07 23:17
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 内容:
复制代码
<Proct ProctID="771" ProctName="Mountain-100 Silver, 38" ProctPrice="3399.99" ProctModelID="19"
ProctModelName="Mountain 100" />
请注意构造的 XML 中的下列内容:
从 Proct 表中获取的 ProctID、ProctName 和 ProctPrice 属性值。
从 ProctModel 表中检索的 ProctModelID 属性值。
若要使查询更加有趣,可以从 xml 类型列 CatalogDescription 中获取 ProctModelName 属性值。由于未存储所有产品型号的 XML 产品型号目录信息,因此将使用 if 语句检索该值(如果存在)。
复制代码
SELECT P.ProctID, CatalogDescription.query('
declare namespace pd="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProctModelDescription";
<Proct
ProctID= "{ sql:column("P.ProctID") }"
ProctName= "{ sql:column("P.Name") }"
ProctPrice= "{ sql:column("P.ListPrice") }"
ProctModelID= "{ sql:column("PM.ProctModelID") }" >
{ if (not(empty(/pd:ProctDescription))) then
attribute ProctModelName { /pd:ProctDescription[1]/@ProctModelName }
else
()
}
</Proct>
') as Result
FROM Proction.ProctModel PM, Proction.Proct P
WHERE PM.ProctModelID = P.ProctModelID
AND CatalogDescription is not NULL
ORDER By PM.ProctModelID
请注意上述查询的以下方面:
由于从两个不同的表检索值,因此 FROM 子句指定两个表。WHERE 子句中的条件用于筛选结果,并只检索产品型号具有目录说明的产品。
XQuery Prolog 中的关键字 namespace 用于定义查询主体中使用的 XML 命名空间前缀“pd”。请注意,表别名(“P”和“PM”)是在查询本身的 FROM 子句中定义的。
sql:column() 函数用于将非 XML 值引入 XML。
下面是部分结果:
复制代码
ProctID Result
-----------------------------------------------------------------
771 <Proct ProctID="771" ProctName="Mountain-100 Silver, 38"
ProctPrice="3399.99" ProctModelID="19"
ProctModelName="Mountain 100" />
...
下面的查询构造了包含产品特定信息的 XML。此信息包括 ProctID、ProctName、ProctPrice 以及属于特定产品型号 (ProctModelID=19) 的所有产品的 ProctModelName(如果有)。然后,将 XML 分配给 xml 类型的 @x 变量。
复制代码
declare @x xml
SELECT @x = CatalogDescription.query('
declare namespace pd="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProctModelDescription";
<Proct
ProctID= "{ sql:column("P.ProctID") }"
ProctName= "{ sql:column("P.Name") }"
ProctPrice= "{ sql:column("P.ListPrice") }"
ProctModelID= "{ sql:column("PM.ProctModelID") }" >
{ if (not(empty(/pd:ProctDescription))) then
attribute ProctModelName { /pd:ProctDescription[1]/@ProctModelName }
else
()
}
</Proct>
')
FROM Proction.ProctModel PM, Proction.Proct P
WHERE PM.ProctModelID = P.ProctModelID
And P.ProctModelID = 19
select @x
参考资料:http://technet.microsoft.com/zh-cn/ms191214.aspx
热心网友
时间:2022-04-08 00:35
http://zhidao.baidu.com/question/87535777.html?si=1
在SQL中column是什么意思?
column是字段,也就是列!
帮我解释下SQL建表命令的意思(翻译,详细点谢谢大哥OR大姐)
如果指定 NO ACTION,SQL Server 将产生一个错误并回滚父表中的行删除操作。例如,在 Northwind 数据库中,Orders 表和 Customers 表之间有引用关系。Orders.CustomerID 外键引用 Customers.CustomerID 主键。如果对 Customers 表的某行执行 DELETE 语句,并且为 Orders.CustomerID 指定 ON DELETE CASCADE 操作,则 SQL S...
使用SQL语句向表插入一条学生记录:(其中学号的值为自动编号)如何实现...
into可以省略不写 insert into语句可以有两种编写形式:1、无需指定要插入数据的列名,只需提供被插入的值即可:insert into table_name values (value1,value2,value3,...);2、需要指定列名及被插入的值:insert into table_name (column1,column2,column3,...)values (value1,value2,value3,....
SQL 数据库常用命令及语法举例
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,...
sql中mul是什么意思?
mul是SQL中的一个关键字,表示“乘法运算符”或者“乘法操作”。mul用于将两个或多个数字或数值表达式相乘,返回乘积值。在SQL中,mul常常与其他算术运算符一起使用,如加法和减法,以实现其他复杂的数学计算。mul在SQL中广泛应用于各种计算操作中。举个例子,我们可以使用mul将两个数值型字段相乘,以...
举例说明SQL语言中有哪些语句分别属于模式DDL、子模式DDL和内模式DDL...
在SQL语言中,DDL(数据定义语言)用于定义数据库中的表、视图、索引等对象,包括模式DDL、子模式DDL和内模式DDL。1. 模式DDL:用于定义整个数据库的结构,包括数据库名称、表空间、用户、角色等。例如:CREATE DATABASE my_database;2. 子模式DDL:用于定义一个用户或一组用户的数据结构,包括表、视图...
SQL语句中的创建新表怎么做?要实例啊!!!跪求!create table tabname(col...
id int IDENTITY(1,1) NOT NULL,//id为字段名,int表示字段为整数类型,IDENTITY表示是自增长的,也就是当你插入数据的时候这个字段不用管,NOT NULL说明这个字段不能为空 name nvarchar(50) NULL,//name为字段名,nvarchar(50),表示可变长度Unicode字符数据,长度不能超过50,NULL说明这个字段可以...
sql语句的问题:WHERE’”+ column +”’=’”+ value +”’”;_百度...
你要明白一件事,就是这些东西是要给数据库执行的不是c#的code 而在数据 库里是这个样子的,select * from account wherer column = 'aaaa' 这里要有单引号 所以啦 这里需要 单引号,至于 双引号是因为 我们要读 value的值,所以要用 + 的方式 把字符串 联结 起来,这些写完就变成 select *...
关于MySQL中SQL注释的详细介绍mysql中sql注释
1.解释性注释:这种注释类型主要用于向其他维护人员或系统管理员解释SQL语句的含义或作用。例如:/* This query selects all users from the users table */ 2.临时注释:这种注释类型主要用于临时调整SQL语句的执行方式。例如,在开发和测试环境中可以使用这种注释类型,而在生产环境中则应该去除所有临时...
求SQL语句里面join的用法,求例子及讲解。
SQL INNER JOIN 关键字 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。INNER JOIN 关键字语法 SELECT column_name(s)FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name 注释:INNER JOIN 与 JOIN 是相同的。SQL LEFT JOIN 关键字 LEFT JOIN ...