这就是问题,我有大量的原始数据,我需要以编程方式通过C#处理和输出,为此,我使用SQL
为变量赋值,这些变量在上进行迭代发票编号” 。
发票上必须包含最多70个字符的说明。我也只能填写5个描述字段。
一些发票超过5张,其他发票只能包含1张。
所以我有这个:
SELECT DISTINCT top 5
iw.Descript,
NEWID()
FROM staging.InputOrigin iw
left join [Parameters].[VendorMasterUpdate] VMU ON VMU.article = iw.article AND iw.Country=vmu.origin
WHERE post_advice='XXXXXXX'
ORDER BY NEWID()
我正在用它来获得“前5名”随机描述。
C#如下分配变量:
var Desc1 = table2.Rows[i]["Descript"];
现在我知道我可以参数化i以检查rowscount
,如果rowscount
小于5,则可以迭代until i = rowscount
和rowscount
以上的所有内容以进行描述为NULL
。
但是我朝相反的方向看,这就是如何在SQL上做到这一点。
通过任何方式我都可以随机获得TOP 5
,如果该值小于5,那么用NULLS
填充多余的值吗?
答案 0 :(得分:3)
我将使用一个计数表(在这种情况下,仅使用5个值),然后使用def my_custom_strainer(soup, attrs):
for attr in attrs:
print("attr:" + attr + "=" + attrs[attr])
for d in soup.findAll(['div','span']):
if d.name == 'span' and 'class' in attr and attrs['class'] == "score":
return d.text # meet your needs here
elif d.name == 'span' and d.text == re.compile("my text"):
return d.text # meet your needs here
:
LEFT JOIN
答案 1 :(得分:2)
一种快速而肮脏的方法是:
With CTE as
(... my query...)
, CTE2 as
(
select *
from CTE
union all
select null, null, null -- 1
union all
select null, null, null -- 2
union all
select null, null, null -- 3
union all
select null, null, null -- 4
union all
select null, null, null -- 5
)
select top 5 *
from CTE2
order by thenewidcolumn