我正在尝试从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'作为列名
我该怎么做?有什么帮助吗?
答案 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行,我需要多行。