SQL Query将用户定义的字段连接成一行

时间:2015-01-27 15:02:26

标签: sql join entity-attribute-value

最亲爱的天才,

我有供应商表和 UDF (用户定义函数)表。我需要查询供应商表中的一些数据以及 UDF 表中的数据。现在,每个vendor_id将有多个UDF结果。 (vendor_id和ud_join是表之间的链接)。

供应商表

| vendor_id  |  vendor_name  |  vendor_address  |  vendor_status |
-----------------------------------------------------------------
|    1234    |  ABC Company  |  123 Fourth St.  |    Active      |

UDF表

|  udjoin  |  udtype  |  udindex  |  udvalue  |
-----------------------------------------------
|   1234   |   VN     |    36     |  Data36   |
-----------------------------------------------
|   1234   |   VN     |    53     |  Data53   |
-----------------------------------------------
|   1234   |   VN     |    67     |  Data67   |

我想查询“1234”的vendor_id,返回结果为:

| vendor_id  |  vendor_name  |  vendor_address  |  vendor_status |  udf_36  |  udf_53  |  udf_67  |
--------------------------------------------------------------------------------------------------
|    1234    |  ABC Company  |  123 Fourth St.  |     Active     |  Data36  |  Data53  |  Data67  |

希望这可以通过基本查询来完成 提前感谢您的所有帮助。

2 个答案:

答案 0 :(得分:1)

您可能想要调查PIVOT操作;它的可用性和精确的语义取决于您使用的RDBMS。以下是一些有用的链接,可以帮助您入门:

如果您在stackoverflow存档中搜索" SQL Pivot"你会发现很多相关的问题。

答案 1 :(得分:1)

您需要转置数据,在SQL中使用PIVOT功能。请参考

https://www.simple-talk.com/blogs/2007/09/14/pivots-with-dynamic-columns-in-sql-server-2005/

希望这会有所帮助