如何操作SQL IN运算符以返回所有值

我正在研究Java代码,其唯一目的是显示数据库表中的所有数据。

从数据库中获取表数据的查询写在jar中。

表结构有点像:

id

以前,jar中的sql命令如下所示:

df = pd.concat([df1,df2.merge(df1[['id','city','district']],how='left',on='id')],sort=False)
print (df)
   id city district      date  value
0   1   bj       ft  2019/1/1      1
1   2   bj       ft  2019/1/1      5
2   3   sh       hp  2019/1/1      9
3   4   sh       hp  2019/1/1     13
4   5   sh       hp  2019/1/1     17
0   3   sh       hp  2019/2/1      1
1   4   sh       hp  2019/2/1      5
2   5   sh       hp  2019/2/1      9
3   6  NaN      NaN  2019/2/1     13
4   7  NaN      NaN  2019/2/1     17

但是现在在较新版本的jar中,查询类似于:

Column1  Column2  City 
Dummy    Dummy    abc
Dummy    Dummy    xyz
Dummy    Dummy    pqr
Dummy    Dummy    ALL

该变量在运行时填充,是一个字符串变量。

现在的问题是,我对罐子没有任何控制,我也无法更改其中的任何内容。

我的目标仍然是在表中显示所有内容。**

我尝试在命令中放入 select * from table; (空白),但它仅返回city为ALL的行。

那么有什么方法可以使用in运算符来获取所有行的结果,或者我应该返回具有简单选择查询的上一个jar。

wxy1934 回答:如何操作SQL IN运算符以返回所有值

尝试一下:

 select * 
 from table 
 where city in (select city from table)
,

在这里您可以在查询中传递动态或运行时值。

DECLARE @ParameterDefinition NVARCHAR(MAX) 
 SET @ParameterDefinition = '@P_Filter NVARCHAR(MAX)';

DECLARE @SQL  NVARCHAR(MAX);
DECLARE @Filter  NVARCHAR(MAX) = '' //set here filter value

SET  @SQL = 'select * from table where city In (@P_Filter);'

EXECUTE sp_executesql @SQL,@ParameterDefinition,@P_Filter = @Filter

或 使用STRING_SPLIT Function

传递值
select * from table where city In (STRING_SPLIT([FILTER_VALUE]));

有关更多详细信息,请访问此链接Click me

,

使用case语句或mysql if函数检查您的variable是否为空

select * from table where city In (if(length(variable) > 0,city,''),'All');
本文链接:https://www.f2er.com/3161704.html

大家都在问