我在C#中有一个List<string>
,我想在对Redshift的查询中使用它。例如:
List<string> fieldStringList = new List<string>(){"field1","field2","field3"};
await using var conn = new NpgsqlConnection("My Connection String");
await conn.OpenAsync();
await using var cmd = new NpgsqlCommand("SELECT TOP 10 * FROM example WHERE field IN (:field);", conn);
cmd.Parameters.AddWithValue("field", NpgsqlDbType.Array | NpgsqlDbType.Varchar, fieldStringList.ToArray());
此操作失败,例外
Npgsql.PostgresException(0x80004005):42883:运算符不存在:字符变化=字符变化[]
似乎我正在尝试将varchar与varchar []进行比较?
如何将数组传递给Redshift查询?
IN
运算符不接受数组。尝试以下操作:
SELECT TOP 10 * FROM example WHERE field = ANY (:field);