【发布时间】:2016-06-20 01:43:03
【问题描述】:
有下表:
| Some Table |
| Id | Name | Age |
| 23 | Marc | 41 |
| 54 | Edu | 34 |
我想得到:
|Another Table's Column| Id | Name | Age |
| ..... | Id@23 | Name@Marc | Age@41 |
| ..... | Id@54 | Name@Edu | Age@34 |
此查询将在动态 sql 中使用,表的名称将作为参数传递。
最终查询必须显示至少两个表的数据,并且其中只有一个必须显示以他的列名作为前缀的数据。
【问题讨论】:
-
您可以调查
INFORMATION_SCHEMA.COLUMNS视图以获取列名 -
这个问题有点不清楚。 “只有其中一个必须以列名作为前缀显示数据”是什么意思?如果我们可以有两个表数据和一些输出可能会更清楚
-
大概你想要
DECLARE @ VARCHAR(MAX) = ''; SELECT @+= ', ''' + COLUMN_NAME + '@'' + CAST(' + COLUMN_NAME + ' AS VARCHAR(MAX)) [' + COLUMN_NAME + ']' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'myTable'之类的东西以及围绕它的动态查询? -
所以这里还有一些问题。你知道要从作为参数传入的表中选择多少个字段和哪些字段吗?以及应该在哪一列上与另一张表连接?
标签: sql sql-server tsql dynamic-sql