以下语句只返回一行,即使有多个不同的行。
import-csv $fname | select "C1", 'C2' | Get-Unique
如何获取所选C1
和C2
的实际唯一值?
如果只选择了一个属性,-ExpandProperty
可以解决问题。我希望它返回与SQL语句select distinct C1, C2 from ....
相同的结果。
答案 0 :(得分:4)
您可以使用Group-Object
:
Import-Csv $fname | Group-Object -Property 'C1', 'C2' | Select-Object -ExpandProperty Name
如果您需要提取值,请将Name
参数拆分为,
:
$Uniques = Import-Csv $fname | Group-Object -Property 'C1', 'C2' | ForEach-Object {
@($_.Name -Split ', ')
}
如果属性不是字符串,或者它们包含逗号,则可以从每个组中选择第一个对象:
$Uniques = Import-Csv $fname | Select-Object 'C1','C2' | Group-Object -Property 'C1', 'C2' | ForEach-Object {
$_.Group | Select-Object -First 1
}