首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在sql中制作多选题检查表

在sql中制作多选题检查表
EN

Stack Overflow用户
提问于 2013-03-28 16:20:46
回答 1查看 1.2K关注 0票数 0

我正在研究Sql server,并尝试做不同的例子。你能建议我在这种情况下使用什么吗?下面是我的检查列表(不是复选框,以列表的形式在不同窗口中打开):

代码语言:javascript
复制
Colors 
   Red
   Blue
  White
  Black
  Green

来自表item.colors

希望根据选择的记录提供搜索。例如,假设选择了'Red‘和'Blue’作为输出,希望从表中获取相关记录。

代码语言:javascript
复制
Colors
  Red     v
  Blue    v
  White
  Black 
  Green

所以输出:

代码语言:javascript
复制
  id    Name      Colors
  1    T-shirt    Red      
  2    Boots      Blue    

有什么建议要怎么做吗?即使使用参数,那么在有数百条记录的情况下怎么办?我们不能有100个参数)

EN

回答 1

Stack Overflow用户

发布于 2013-03-28 16:42:59

您可以使用两个选项(可能更多):

A.使用String参数

首先,在应用程序中将值连接到单个字符串中,并将其作为一个varhcar参数发送。它可能看起来像这样:'Red;Blue‘(或者可能是一些ID)。之后,SQL过程应该将字符串拆分为值列表,并将其放在#temp表中。在web上有很多字符串拆分功能。你可以很容易地在谷歌上搜索它,或者查看这个链接以获得一些想法:How do I split a string so I can access item x?最终只需将#temp表中的值与您的表连接起来,即可获得所需的数据。

B. XML

这是一个更“花哨”的选项。将app中的值放入XML中,并将其作为XML参数传递给存储过程。我不知道您使用的是什么编程语言,但应该有一个提供的方法来做到这一点。然后,在您的过程中-如果您知道如何使用-您可以直接将XML参数与表连接以过滤数据,或者,您也可以先将它们溢出到#temp表。再说一次,这里有大量关于如何使用XML的信息。一些例子:Select values from XML field in SQL Server 2008 http://blog.sqlauthority.com/2010/06/23/sqlauthority-news-guest-post-select-from-xml-jacob-sebastian/

编辑:(第三个选项,最简单,但我不推荐它)

C.动态SQL

创建连接字符串,就像在选项A中一样,但在过程中-不要将其拆分为值,而只是使用SELECT语句将其粘合到字符串中,并使用sp_executesql或EXEC。

代码语言:javascript
复制
SET @sql = 'SELECT * FROM YourTable WHERE Color IN (' + @parameter + ')'
EXEC(@sql)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15677077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档