【问题标题】:SQL algorithm question to convert a table转换表的SQL算法问题
【发布时间】:2010-05-12 23:10:38
【问题描述】:

我有一张这样的桌子:

number  stuff1  stuff2  stuff3
-------------------------------
1       x       y
2       a
3       b   
4       c       d       e

我想用sql语句把它变成这样:

number  stuff1  stuff2  stuff3
-------------------------------
1       x
1               y   
2       a
3       b   
4       c
4               d   
4                       e

我在构建 sql 语句时遇到问题。请帮忙! alt text http://img193.imageshack.us/img193/8408/35944096.png

【问题讨论】:

  • 很抱歉,无法以良好的格式做到这一点
  • 如果您提供例如您的字段名称,那么回答起来会容易得多。通过查看表格,我们无法看到 x 和 y 的存储位置以及它们的表示方式。

标签: sql mysql ms-access


【解决方案1】:

假设您的列名为 ID、field1、field2 和 field3:

SELECT * FROM (
  SELECT ID, field1, NULL, NULL FROM table WHERE NOT (field1 IS NULL)
  UNION
  SELECT ID, NULL, field2, NULL FROM table WHERE NOT (field2 IS NULL)
  UNION
  SELECT ID, NULL, NULL, field3 FROM table WHERE NOT (field3 IS NULL)
) mySubQuery
ORDER BY ID

(未经测试;确切的语法可能因使用的数据库引擎而异)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2017-09-21
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    相关资源
    最近更新 更多