SQL Server-带换行符的列名

时间:2018-07-13 19:31:25

标签: sql sql-server

类似于Column names with line breaks,但使用SQL Server而不是PostgreSQL。

我必须从具有换行符的列的表中读取列。 即:

SELECT
[Column
Name]
FROM [dbo].[TableName]

我无法更改此架构。

我用于查询SQL Server的工具也只允许一行查询,因此我无法执行上面的确切查询。

如何在一行中编写此SELECT查询?

2 个答案:

答案 0 :(得分:1)

未经测试,但您可以尝试此操作。我将命令放在单独的行上以提高可读性,但是将所有命令组合在一行上时,它应该工作相同。

另外,您可能需要确认要使用哪些字符在列名中引起换行(并确认其中没有其他空格字符):

DECLARE @sql varchar(max);
SET @sql = 'SELECT [Column'+char(10)+char(13)+'Name] FROM [dbo].[TableName]';
EXEC (@sql);

答案 1 :(得分:0)

这些是您的一些不愉快的要求。这是一种方法:执行“从dbo.TableName中选择*”,然后从基于顺序位置的结果中获取列值。如何在不遇到相同问题的情况下获得该列的序数位置?我想你可以这样查询

select ORDINAL_POSITION from INFORMATION_SCHEMA.columns where table_schema = 'dbo' table_name = 'Table' and column_name = 'Column'+CHAR(13)+CHAR(10)+'Name'

因此,从结果中可以进行“选择*”并在该位置获取列值。

相关问题的答案指出这不是一件好事-Is it possible to select sql server data using column ordinal position