SQL变量列名取决于行数据

时间:2010-06-25 19:28:28

标签: sql-server-2005 dynamic-sql

我正在尝试从DB获取一个列,该列返回依赖于Row数据的Variable Column Name。我知道我可以使用动态SQL来获取变量列名,但如果名称实际上取决于行的信息,那该怎么办。

SELECT name,age FROM dbo.Names                           

- 将'name'重新命名为列名

SELECT name as [xyz],age FROM dbo.Names                 

- 以列名

返回'xyz'
EXEC 'SELECT name as [' +  @var + '], age FROM dbo.Names'

- 将@var值作为列名返回

SELECT name AS ['Hi: ' + age ] FROM dbo.Name ?????       

- 所以我想把'Hi:25'或'Hi:40'作为列名

我该怎么做?有什么帮助吗?

2 个答案:

答案 0 :(得分:3)

您可以将方法合并为一行,但不能选择所有行:

DECLARE @age INT
SET @age = SELECT TOP 1 @age FROM dbo.NAMES
EXEC 'SELECT name as [Hi ' +  @age + '], age FROM dbo.Names'

为什么需要在SQL中而不是在应用程序逻辑中执行此操作?

答案 1 :(得分:0)

我将不得不在应用程序方面进行更改。我不认为可以在SQL端进行更改。该逻辑仅适用于1行,我需要多行。