在一个语句中查询所有名称的表

时间:2017-08-11 19:11:38

标签: sql sql-server

我有一个我无法改变的表,我试图围绕一个适当的方式在一个语句中根据一个给定的值查询该表。

大概这里是表格的样子:

Sample Table

我之后只能使用SubBody代码查询表格,以获取与之关联的所有名称。

例如,

<query> where SubBody = '1001'

返回

| HName | HSName | BName | BSName   |
+-----------------------------------+
| Toys  | Sport  | Ball  | Baseball |

3 个答案:

答案 0 :(得分:1)

SELECT Head.Name as HName , 
       SubHead.Name as HSName , 
       Body.Name as BName , 
       SubBody.Name as BSName   
FROM yourTable as SubBody
JOIN yourTable as Body
  ON SubBody.Body = Body.Body
 AND Body.SubBody IS NULL
JOIN yourTable as SubHead
  ON Body.SubHead = SubHead.SubHead
 AND SubHead.Body IS NULL
JOIN yourTable as Head
  ON SubHead.Head = Head.Head
 AND Head.SubHead IS NULL
WHERE  SubBody.SubBody = '1001'

答案 1 :(得分:1)

虽然您可以将逻辑表示为连接,但由于某种原因,首先会想到相关的子查询:

select (select th.name from t th where th.head = t.head and th.subhead is null) as hname,
       (select ts.name from t ts where ts.head = t.head and ts.subhead = t.subhead and t.body is null) as sname,
       (select tb.name from t tb where tb.head = t.head and tb.subhead = t.subhead and tb.body = t.body and tb.subbody is null) as bname,      
       t.name as bsname
from t 
where t.subbody = 1001

答案 2 :(得分:1)

这个答案接近胡安卡洛斯发布的内容。你喜欢哪一个取决于你的风格。

<html>
    <head>
        <meta charset="utf-8">
        <title>Paul Taylor Creates</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <header>
        </header>
      <nav><a href="" id="head_link"><span id="bold_avenir">Paul Taylor</span> Creative Design</a>
        </nav>

      <div class="project_container"> 
        <div class="pjct-skinny" id="project_1">
          <div>First Project</div>
        </div>
        <div class="pjct-fat" id="project_2"> 
        </div>
        <div class="pjct-fat" id="project_3"> 
        </div>
        <div class="pjct-skinny" id="project_4"> 
        </div>
      </div>

        <footer>
          <a href=""><span id="bold_avenir" >Resume:</span> LinkedIn </a> 
          <a href=""><span id="bold_avenir">Contact:</span> paultaylorcreates@gmail.com</a>
        </footer>
    </body>
</html>

我不确定你的“空”单元格是否包含空值或空字符串。无论哪种方式,这两方面都被考虑在内。