如何将整数数组传递到 IN 子句中?

发布于 2024-09-30 06:18:57 字数 81 浏览 1 评论 0原文

我想将一个整数数组从 postgresql 函数的输入参数传递到 sql IN 子句中。

我可以将这样的数组转换成什么以及如何转换?

I want to pass an integer array from input parameters of my postgresql function into sql IN clause.

Into what and how I can convert such array?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

木有鱼丸 2024-10-07 06:18:57

我最近有同样的问题。

看这里:

http://postgresql.1045698.n5.nabble.com/Using-PL-pgSQL-text-argument-in-IN-INT-INT-clause-re-post-td3235644.html

希望有帮助。

这是一个示例函数:

CREATE OR REPLACE FUNCTION "GetSetOfObjects"(ids text)
  RETURNS SETOF record AS
$BODY$select *
from objects
where id = any(string_to_array($1,',')::integer[]);$BODY$
  LANGUAGE sql IMMUTABLE

I had same problem lately.

Look here:

http://postgresql.1045698.n5.nabble.com/Using-PL-pgSQL-text-argument-in-IN-INT-INT-clause-re-post-td3235644.html

Hope it helps.

Here is a sample function:

CREATE OR REPLACE FUNCTION "GetSetOfObjects"(ids text)
  RETURNS SETOF record AS
$BODY$select *
from objects
where id = any(string_to_array($1,',')::integer[]);$BODY$
  LANGUAGE sql IMMUTABLE
唯憾梦倾城 2024-10-07 06:18:57

基本上你不能。您可以做的是传入一个逗号分隔的列表并在函数中将其分开。 这里有一些使用 SQL Server 的示例,但我确信它们可以被翻译。

除非 这个 (PostgreSQL) 就是你想要的谈论。

Basically you can't. What you can do is pass in a comma-delimited list and split it apart in your function. Here are some examples using SQL Server, but I'm sure they can be translated.

Unless this (PostgreSQL) is what you're talking about.

飘落散花 2024-10-07 06:18:57

我通常使用隐式转换

select '{1,2,3,4,5}'::integer[]

i usually use implicit conversion

select '{1,2,3,4,5}' :: integer[]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文