SQL 查询以将用户定义的字段连接成一行

SQL Query to get User Defined Fields joined into one row

亲爱的天才们,

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

供应商Table

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

UDFTable

|  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  |

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

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

如果您在 Whosebug 档案中搜索 "SQL Pivot",您会发现许多相关问题。

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

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

希望这会有所帮助