要实现的SQL查询非常原始:



从第一个表请求查询第二个表格式数据后,Internet查询可以编写以下SQL:
复制代码代码如下所示:
SELECT * FROM userino

从中选择*(
选择不同的userpart
从userino
一)
外部的应用(
选择
{用户名} =替换(替换(替换)(选择用户名从userino n值
在userpart = a.userpart顺序n.username ASC FOR XML AUTO), / > < N值= '','')
,。
n)
外部的应用(
选择
{ username_cns } =替换(替换(替换)(选择username_cn从userino m值
在userpart = a.userpart顺序m.username ASC FOR XML AUTO), / > < M值= '','')
,。

m)

现在要分析SQL了。

所使用的要点有:外部应用程序,用于XML自动化。

外采用SQL2005开始查询方法。它类似于连接查询,即对两个查询结果进行缝合。但奇怪的是,外部应用程序可以用于后面的查询应用程序。

如:
复制代码代码如下所示:
SELECT * FROM
(SELECT * FROM userino一)
交叉连接(选择用户名,userino)
其中用户名= a.username)B

SELECT * FROM
(SELECT * FROM userino一)
加入(选择用户名,userino)B a.username = b.username

SELECT * FROM
(SELECT * FROM userino一)
外部的应用(选择用户名,userino)
其中用户名= a.username)B

第一段SQL显然是错误的,原因有两个:1。交叉连接最初是无条件的,2。SQL Server将出现以下错误:

不能绑定多部分标识符。a.username

可以说,条件连接查询不是这样写的。它们应该被写成第二个SQL。事实上,在第三sql中使用外部应用程序也得到了同样的结果。

但外施也可以达到以下效果
复制代码代码如下所示:
SELECT * FROM
(SELECT * FROM userino一)
外部的应用(选择{value} = a.username +测试)B

直接使用联接可能有点麻烦。上面的例子可能没有什么意义。其实SQL2005提出连接方法的运用,主要是为了利用查询语句已连接执行的查询结果。

除了外部应用程序、SQL Server和交叉应用程序之外,它们之间的区别主要是对空值的处理。

对于xml,主要用于直接将SQL查询结果返回到XML语句。对于xml,除了自动的之外还有原始的和明确的。对于细节,它非常简单:用于控制输出。

在SQL的开始,是上述两种特征的使用,使用外部的应用在集团userpart达到类似的效果第一,选择在每个用户的userpart,然后作为一个结果,筛选出的是多线,所以使用XML的多行数据拼接的XML,最后是两分裂…基于XML的。

总之,感觉这种实现方式是很独特的,学习SQL服务器的一些特性并与大家分享。