鉴于此XML:
DECLARE @input XML = '<Data>
<Tab Name="UserData">
<Row>
<BeneficialOwnerName>Fred Flintstone</BeneficialOwnerName>
<TaxID>111-11-1111</TaxID>
</Row>
<Row>
<BeneficialOwnerName>Barney Rubble</BeneficialOwnerName>
<TaxID>222-22-2222</TaxID>
</Row>
</Tab>
<Tab Name="OtherData">
<Row>
<BeneficialOwnerName>Bugs Bunny</BeneficialOwnerName>
<TaxID>333-33-3333</TaxID>
</Row>
<Row>
<BeneficialOwnerName>Road Runner</BeneficialOwnerName>
<TaxID>444-44-4444</TaxID>
</Row>
</Tab>
</Data>'
我想回复一下:
Name BeneficialOwnerName TaxID
UserData Fred Flintstone 111-11-1111
UserData Barney Rubble 222-22-2222
OtherData Bugs Bunny 333-33-3333
OtherData Road Runner 444-44-4444
我的SQL看起来像这样:
SELECT
Name = XCol.value('@Name','varchar(25)'),
BeneficialOwnerName = XCol.value('BeneficialOwnerName[1]','varchar(25)'),
TaxID = XCol.value('TaxID[1]','varchar(25)')
FROM
@input.nodes('/Data/Tab/Row') AS XTbl(XCol)
但是根据我调整FROM子句的方式,我得到两行Tab名称或4行数据,标签名称为Null
我需要做些什么才能显示数据?
由于
卡尔
答案 0 :(得分:2)
从性能角度来看,访问父元素往往比分别选择每个级别更昂贵。对于您的示例,下面的代码稍微快一点,但是对于更大的XML会产生显着的差异:
SELECT
Name = t.c.value('@Name','varchar(25)'),
BeneficialOwnerName = r.c.value('BeneficialOwnerName[1]','varchar(25)'),
TaxID = r.c.value('TaxID[1]','varchar(25)')
FROM @input.nodes('/Data/Tab') t(c)
cross apply t.c.nodes('./Row') r(c);
答案 1 :(得分:1)
除Name列外,一切都很好。试试这个:
# Read image in grayscale mode
img = cv2.imread(inp_pic,0)
# Median Blur and Gaussian Blur to remove Noise
img = cv2.medianBlur(img,3)
img = cv2.GaussianBlur(img, (5, 5), 0)
print(img)
# Adaptive Threshold for handling lightning
im_th = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,11,5)
print(im_th)