Powershell:如何删除重复项

时间:2017-11-24 05:41:56

标签: powershell

尝试建议的方法后对代码进行了更改

查询从Mysql表中选取数据,每两分钟更新一次。查询存储在.csv文件中,以便在dev的后半部分中使用。我需要选择前一个循环中没有的数据,即。比较列数据上的数据集表,以便可以排除重复数据。

The source code is :
foreach($line in $csv)
{
$MySQLQuery=$line.query
$mycommand = New-Object 
MySql.Data.MySqlClient.MySqlCommand($MySQLQuery,$myConnection)
$dataAdapter = New-Object 
MySql.Data.MySqlClient.MySqlDataAdapter($mycommand)
$dataSet = New-Object System.Data.DataSet
$dataAdapter.Fill($dataSet,"data")                                          
$mycommand.Dispose()
$newData  = $dataSet.Tables["data"] 
$rowCount = $newData.Rows.count 

if($rowCount -ne 0)
{
if($previousData -eq $null ){$extractedData =  $newData;} 
else {$extractedData = Compare-object  $previousData $newData | Where { 
$_.SideIndicator -like "=>" } | Select -ExpandProperty InputObject } 
$previousData = $newData 
 }
  

$newData包含列名为" stock_name" 的表格   必须删除重复项。 $ previousData属于类型   数据表,用于存储上一次迭代的数据。   $ extractedData用于保存差异数据。

=============================================== =========================

2 个答案:

答案 0 :(得分:1)

我理解的是,您希望$extractedData中的新数据$newDataset中的新数据与基于$previousData的{​​{1}}进行比较。 因此,您可以像这样更改stock_name

Compare-object

我猜它会起作用。

答案 1 :(得分:0)

如果您想要新数据,为什么您看起来想要以前的数据?尝试过滤并展开$DatasetTable = "asdf","qwer","zxcv" $newData = "asdf","qwer","zxcv",";lkj" $newDataSet = Compare-object $DatasetTable $newData | Where { $_.SideIndicator -like "=>" } | Select -ExpandProperty InputObject $newDataSet cmdlet的结果。下面的代码只返回“; lkj”数据。

$previousdata

很难说,因为我没有看到您的第一个+=运算符之前select * from TABLE_NAME where DATEPART(day, DATE_COLUMN) between (case when datepart(day, getdate()) <= 15 then 1 else 16 end) and (case when datepart(day, getdate()) <= 15 then 15 else 31 end) 变量的确定位置。