SQL 在多列数据中,搜索某些值是否存在

malaluka 2019-01-16 04:42:54
比如我有如下图中的一堆数


提供一部分原始数据,不知道这样提供是否可以。。。。

A1 A2 A3 A4 A5 A6 A7 A8
1220
112 462 312 482 511 512 112 112
432 462
720 732 622 112
882 3132 442 110 3130 920 910 112
112 112 112 112 112 112 112 112
292 112 112
1190 10262 10272 10262 10272 10572 10572 470
212
1102 112 192 462 1102 812
752
112 442 442 442 442 440 872 442
10422 10402 10272 1032 482 322
10690
752 752 752
920 952 952
212
771
10280 10280 762 10870 212 10872 340 112
811 8112 872 872 872 10842 10842 1082
442 512 442 442 742 742 882 112


我现在希望判断这些列中,是否有111,112,113,114这四个数值的存在,这四个数值只要有其中一个存在就后面生成一列标记列,标记为1.。。。。。应如何解决呢。。。

实际数据和搜索要比这个例子复杂的多,要搜索的列数有100多列,而需要搜索的数值可能有好几十个,所以还是需要一些比较便捷的方法来判断,我之前想通过case when来解决发现还是不太现实的。。求大师支招


...全文
422 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
malaluka 2019-01-17
  • 打赏
  • 举报
回复
引用 6 楼 qq_41327902 的回复:
把一行数据加起来形成一列,中间隔一个#字串,然后用like“#字符串#”去查吧
哈哈哈,英雄所见略同。我当时也想到这个方法了,就是感觉方法有点简单粗暴,所以想求教大神有没有什么高级方法。。。最后如果实在不行就只能如此了
qq_41327902 2019-01-17
  • 打赏
  • 举报
回复
把一行数据加起来形成一列,中间隔一个#字串,然后用like“#字符串#”去查吧
malaluka 2019-01-17
  • 打赏
  • 举报
回复
我如果利用游标让他针对搜索的字段,搜索每一列然后输出最后一个判断列,在不考虑效率和时间前提下,是不是也算是一种方法
malaluka 2019-01-17
  • 打赏
  • 举报
回复
引用 3 楼 吉普赛的歌 的回复:
你这个表, 总共有多少行? 你用列存储试一下。
额。。。列存储应该如何操作。。。
吉普赛的歌 2019-01-16
  • 打赏
  • 举报
回复
你这个表, 总共有多少行? 你用列存储试一下。
丰云 2019-01-16
  • 打赏
  • 举报
回复
这种业务,最好是在插入或修改时,判断并设置这个标志值。 否则,无论你用什么算法,都必须要遍历所有相关字段,效率不会有多少提升, 而且每次都这么重复做这种查询,除了浪费服务器资源和电费,毫无意义!!!
malaluka 2019-01-16
  • 打赏
  • 举报
回复
上面提供的数值,复制后在Excel中按照空格分列即可

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧