我正在努力做头脑和彼此之间多个select语句背后的推理尾巴。换句话说,重点是什么?注意:我对T-SQL非常熟悉......我已经从SQL Server的维护方面转移到了它的开发方面。 以下是令我困惑的代码(部分):
SELECT DISTINCT id
,NAME
,TypeCode
,ProductId
,ProductName
,LocationCode
,County
,STATE
,RecommendationType
,PackageName
FROM (
SELECT c.Id
,C.NAME
,p.Typecode
,p.ProductId
,p.Productname
,p.LocationCode
,p.County
,p.STATE
,'Appened' AS RecommendationType
,PackageName
FROM (
SELECT op.*
,t.i.value('@ProductId', 'varchar(50)') AS productId
,t.i.value('@Name', 'varchar(50)') AS Product
FROM (
SELECT pg.CustomerId
,pg.NAME AS PackageName
,pg.runtimedefinition.query('/PackageDefinition/Products') AS CList
FROM product.package pg WITH (NOLOCK)
) op
CROSS APPLY clist.nodes('Products/Task[@xsi:type="ProductTask"]') t(i)
) m
请记住......这段代码是部分的。
谢谢!
答案 0 :(得分:0)
第二个似乎有点无意义,因为它只添加了一个由文字填充的列,但除此之外。
在以前的化身中它可能做得更多,并且重新分解被认为是太多的努力,或者可能遭受开发者健忘症。 “我以为我做到了” 经理中断,修复另一部分代码并忘记你还没完成这个。
至于技术,它是提出解决方案的好方法。我把它称为内部,但它可能有一个科学名称。
在十字架中付出的所有努力都应用于xml并使其正常工作之后,通过将其作为内部查询包装起来,更容易使用结果和更多行为。
它不像临时桌子那样嘈杂,可能是开发前CTE或开发人员不熟悉它们。
尝试在oner中写下它,你可能会开始看到一两点。 :)