Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PostgresSQL/plpgsql中的SQL变量中使用多个值?_Sql_Database_Postgresql_Plpgsql - Fatal编程技术网

如何在PostgresSQL/plpgsql中的SQL变量中使用多个值?

如何在PostgresSQL/plpgsql中的SQL变量中使用多个值?,sql,database,postgresql,plpgsql,Sql,Database,Postgresql,Plpgsql,我想将变量声明为 瓦查尔 然后分配变量 v_nk:=S001234'、'S23401'、'S34509'、'S9900 并在select查询中使用此变量 从mytable中选择*,其中nk在v_nk中 我想在我的一个程序中使用它PLPGSQL您能告诉我应该如何使用它吗?您可以使用数组: v_nk := ARRAY [ 'S001234'::text ,'S23401','S34509','S9900']; 或 并在选择查询中使用此变量: select * from mytable where

我想将变量声明为 瓦查尔

然后分配变量 v_nk:=S001234'、'S23401'、'S34509'、'S9900

并在select查询中使用此变量

从mytable中选择*,其中nk在v_nk中

我想在我的一个程序中使用它PLPGSQL您能告诉我应该如何使用它吗?

您可以使用数组:

v_nk := ARRAY [ 'S001234'::text ,'S23401','S34509','S9900'];

并在选择查询中使用此变量:

select * from mytable where nk = ANY (v_nk);
您可以使用数组:

v_nk := ARRAY [ 'S001234'::text ,'S23401','S34509','S9900'];

并在选择查询中使用此变量:

select * from mytable where nk = ANY (v_nk);

您可以这样定义数组而不是变量:

DECLARE nk_array    VARCHAR(30)[] = '{'S001234','S23401','S34509','S9900' }';
select * from mytable where nk in nk_array;

您可以这样定义数组而不是变量:

DECLARE nk_array    VARCHAR(30)[] = '{'S001234','S23401','S34509','S9900' }';
select * from mytable where nk in nk_array;

嗨,RomanTkachuk,我试过这个,但没用。我收到一个错误。你是否将v_nk声明为text[]?嘿@RomanTkachuk……当我使用v_nk:ARRAY['S001234'::text,'S9900';我得到了这个错误-数组值必须以{或维度信息开始。然后我使用第二个解决方案将其转换为运行时,其中nk=ANY{S001234,S23401,S34509,S9900},并为{bracketYou try:SELECT Array['S001234'::text,'S9900'];和=ANY{S001234,S23401,S34509,S9900}::text[]给出错误-请使用'NOT Hi@RomanTkachuk'我试过了,它不起作用。我收到了一个错误。你是否将v_nk声明为text[]?嘿@RomanTkachuk……当我使用v_nk:ARRAY['S001234'::text,'S9900']时;我得到了这个错误-数组值必须以{或维度信息开头。然后我使用了第二个解决方案,它转换为运行时,其中nk=ANY{S001234,S23401,S34509,S9900}并为{bracketYou try:选择数组['S001234'::text,'S9900'];和=任何“{S001234,S23401,S34509,S9900}”:text[]-请使用'NOT Hey@sia我也试过了,它给我的错误..不起作用你弄乱了引号。嘿@sia我也试过了,它给我的错误..不起作用你弄乱了引号。