当前位置: 首页 > 面试题库 >

如何在T-SQL中使用逗号分隔的值列表作为过滤器?

阎弘
2023-03-14
问题内容

我有一个基本的SQL查询,开始于:

SELECT top 20 application_id, [name], location_id FROM apps

现在,我想完成它,以便做到这一点(用伪代码编写)

if @lid > 0 then
    WHERE location_id IN (@lid)
else
    WHERE location_id is all values in location_id column

根据要求,这是一个示例

application_id             name               location_id
----------------------------------------------------------
1                          Joe Blogs          33
2                          Sam Smith          234
3                          Jeremy Carr        33

@locid是用户给出的结果,例如‘33,234’

如果@lid为空,那么我希望它输出具有name和application_id的location_id的所有行。否则,我希望它输出与@lid中提供的数字相关的所有行(代表location_id。

因此,如果@lid为0:

application_id             name               location_id
----------------------------------------------------------
1                          Joe Blogs          33
2                          Sam Smith          234
3                          Jeremy Carr        33

否则,如果@lid包含“ 33”

application_id             name               location_id
----------------------------------------------------------
1                          Joe Blogs          33
3                          Jeremy Carr        33

问题答案:

尝试使用 Case ,它满足IIF或三元运算符的目的。请检查此链接http://msdn.microsoft.com/en-
us/library/ms181765.aspx

干杯



 类似资料:
  • 问题内容: 我需要创建一个逗号分隔的项目列表: 根据AngularJS文档,表达式中不允许使用控制流语句。这就是为什么我无法正常工作的原因。 有没有其他方法可以创建逗号分隔的列表? 编辑1 比以下更简单: 问题答案: 您可以这样进行: ..但我喜欢Philipp的回答:-)

  • 问题内容: 我有看起来像这样的数据: 对于每个customer_id,我需要用逗号分隔的列表,以指示该客户运营的月份: 等等。如何使用SQL Server 2005 SQL(而不是T-SQL)轻松生成此逗号分隔的列表? 我在Stack Overflow和其他地方在这里看到的大多数解决方案似乎都是基于联接多个行值而不是列值来创建逗号分隔的列表: T-SQL FOR XML路径(’‘) 关联的子查询与

  • 问题内容: 我有3个表,分别为: 应用程序(ID,名称) 资源(ID,名称) ApplicationsResources(id,app_id,resource_id) 我想在GUI上显示所有资源名称的表。我想在每一行的一个单元格中列出该资源的所有应用程序(以逗号分隔)。 所以问题是,在SQL中执行此操作的最佳方法是什么,因为我需要获取所有资源,并且还需要获取每种资源的所有应用程序? 我是否先从资源

  • 问题内容: 我有一个包含逗号分隔值的MySQL表,如下所示: 我要选择其集合中的行。我怎样才能做到这一点? 问题答案: 怎么样

  • 问题内容: 我已经尝试过一些试验,但还不能解决。任何帮助,将不胜感激。 我有一个像下面的表。 我正在寻找的结果是。它会删除所有重复项,并仅保留具有其关联ID的不同值。 我试图用(len(replace(@ProjectNames,’,’))来计算逗号的数量 使用http://www.logiclabz.com/sql-server/split-function-in-sql-server-to-b

  • 问题内容: 我有一个其中有很多记录的记录,我想知道其中有多少个名字,以及其中一个名字多少时间。 表名 我想找到多少个名字及其数量。 预期的输出应该是这样的 帮助我解决它。 问题答案: 结果: