微调我的查询

时间:2018-07-13 11:29:11

标签: sql-server

我正在用它来搜索一张桌子

Num1 num2  num3  num4  num5  num6
----------------------------------
1     2     2      5     59    100           <------grouped numbers 
1     2     3      10    20    241
1     3     1      25    22    1
2     4     4      1     3     34
2     2     3<------grouped numbers
2     2     3<------grouped numbers
3     3     4



SELECT (num1),
       (num2),
       (num3),
       (num4),
       (num5),
       (num6)
FROM numbers
WHERE (num1 = 1)
   OR (num2 = 1)


  AND (num3 = 3)
   OR (num4 = 3)


  AND (num4 = 4)
   OR (num5 = 4);

Example1

1、2、2被水平分组

示例2

1,2,2这个组合显示x次数

示例3

1,2,2 = 1次

2,2,3 = 2次

它可以工作,但是我必须手动输入所有数字,如果1落在num1或num2之外,我会错过

我正在寻找一种实现方法

  1. 搜索自动显示数字模式为3的所有行
  2. 不必手动输入数字即可获得样式
  3. 以我可以打印的形式显示结果,并显示具有这些模式的所有行

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您要实现的目标,但是您的餐桌设计似乎有缺陷。

您的表格应如下

Num    Val
1       1
1       1
1       1
1       2
1       2
1       2
1       3
2       2
2       2
2       3
2       4
2       2
2       4
2       3
3       2
3       3
3       1
3       4
3       3
3       3
3       4

您的查询将类似于

SELECT    *
FROM      numbers
WHERE     Num = Val OR Num+1 = Val -- AND etc....