排序以查询数据库

时间:2017-05-15 08:35:29

标签: sql arrays powershell

尝试获取变量的输入,并使用PowerShell中的数组将值传递给sql查询。

请帮助我理解这个

$value=read-host "Please enter the value:"
Invoke-sqlcmd -query "select * from something where somewhere in ($value)

如上例所述 我需要输入的值来传递sql查询,每个值都应该用标点符号排序。

实施例

select * from something where somewhere in('1234','2345','3456') 

帮助我检索值并相应地对其进行排序以进行查询

1 个答案:

答案 0 :(得分:0)

根据用户输入值的方式,您必须首先拆分值才能获得数组。您可能希望拆分一个或多个空格

$value - split '\s+'

然后,您必须使用ForEach-Object cmdlet

用单引号括住每个值
$value -split '\s+' | ForEach-Object {"'$_'"}

最后用逗号加入值。所以你可能想要使用这样的东西:

($value -split '\s+' | ForEach-Object {"'$_'"} ) -join ','

示例:如果用户输入:

3 12 5

你会得到

'3','12','5'
相关问题