我正在将 CSV 转换为 SQL 插入,并且有一个可以为空的文本列,如果它不为 NULL,我需要将其括起来。我会为转换编写类似以下内容的内容:
Import-Csv data.csv | foreach { "INSERT INTO TABLE_NAME (COL1,COL2) VALUES ($($_.COL1),$($_.COL2));" >> inserts.sql }
但我不知道如何在管道中添加一个额外的层来查看 COL2 是否不等于“NULL”,并在这种情况下引用它。我如何实现这种行为?
答案1
在 cmdlet 的代码块中,foreach-object
您可以有多个语句,例如:
Import-Csv data.csv |
foreach {
if ($_.COL1 -ne $null) {
$c1 = "'$($_.COL1)'"
} else {
$c1 = $_.COL1
}
"INSERT INTO TABLE_NAME (COL1,COL2) VALUES ($c1,$($_.COL2));" >> inserts.sql
}