首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从逗号值中获取行值

如何从逗号值中获取行值
EN

Stack Overflow用户
提问于 2019-10-30 11:33:44
回答 2查看 52关注 0票数 0

下面是我的表XYZ数据

代码语言:javascript
复制
Sno  ProgramID    ProgramName
 1      1,2          CCE
 2      3,11         DDU

我希望输出类似于下面传递的programID 1

代码语言:javascript
复制
Sno  ProgramID    ProgramName

 1      1,2          CCE

我正在尝试如下查询

代码语言:javascript
复制
select * from XYZ  where ProgramID in('1')

上面的查询没有结果,我的问题是单值匹配和in查询。我不希望查询匹配精确值

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-30 11:35:09

你有一个坏的数据模型。你可以用LIKE做你想做的事

代码语言:javascript
复制
select *
from XYZ 
where ',' + ProgramID + ',' like '%,1,%';

也就是说,您应该理解为什么在字符串中存储多个值是错误的。

capabilities.

  • Queries的
  • 数字应该存储为数字,而不是字符串。
  • is应该有正确声明的外键引用,这是您不能使用字符串的。
  • SQL的字符串处理能力很差,无法使用索引和分区,并且可能混淆了字符串以避免重复。
    • SQL具有很好的存储列表的数据类型。它被称为表而不是字符串。
票数 2
EN

Stack Overflow用户

发布于 2019-10-30 12:07:32

您可以使用:

代码语言:javascript
复制
 Select *  from XYZ  WHERE (',' + Rtrim(ProgramID) + ',') LIKE '%,1,%'

使用TRIM消除字符串开头和结尾处的任何空格。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58624471

复制
相关文章

相似问题

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