代码之家  ›  专栏  ›  技术社区  ›  Sam Johannes Rudolph

SQL已设置且不显示空白的“单元格”

  •  3
  • Sam Johannes Rudolph  · 技术社区  · 15 年前

    我使用一个mysql数据库表作为实际的表,每列都有一天的时间,还有一列叫做day。你猜对了,在一天中它表示一周中的某一天,在其余的单元格中它表示在那个时间发生了什么。

    我要做的是只显示其中有值的单元格。在我的例子中,总是将所有的行和2列都填满。这两列分别是“day”和“19:00”,不过将来我可能会为“18:00”等添加值。

    那么,如何只选择其中包含数据的列和行呢?某种类型的“哪里有数据”?

    谢谢!

    编辑: picture

    我要做的是只显示其中有值的单元格。在我的例子中,总是将所有的行和2列都填满。这两列分别是“day”和“19:00”,不过将来我可能会为“18:00”等添加值。

    那么,如何只选择其中包含数据的列和行呢?某种类型的“哪里有数据”?

    谢谢!

    编辑: 图片

    2 回复  |  直到 15 年前
        1
  •  1
  •   Janick Bernet    15 年前

    从我收集到的信息来看,你正在寻找

    WHERE col1 IS NOT NULL
    

    但是,如果您能更详细地描述您的模式,特别是如果您可以绘制一个示例表,这将是很有帮助的。

        2
  •  2
  •   Guffa    15 年前

    将时间或日期作为列表示字段名中有数据。数据属于表内,因此应使数据库正常化:

    table Calendar
    --------------
    Day
    TimeOfDay
    Appointment
    

    这样,表中就不会有很多空字段,也不必更改数据库设计来添加一天中的其他时间。

    现在,您可以轻松地只获取存在的时间:

    select Day, TimeOfDay, Appointment from Calendar