来自逗号分隔字符串的不同列名

时间:2013-08-21 06:01:31

标签: sql-server

两个报告正在使用包含以下查询的表格列

SELECT [Employee Name], [Email_ID], [Region], [DOB], [Joining Date], [Gross Salary]   FROM [tblC6FD_Data_15_EmployeeData]   ORDER BY [Employee Name] ASC, [Email_ID] ASC, [Region] ASC, [DOB] ASC, [Joining Date] ASC, [Gross Salary] ASC

SELECT [Employee Name], [Region], [Email_ID], [DOB], [Leaving Date], [Basic Salary]   FROM [tblC6FD_Data_15_EmployeeData]   ORDER BY [Employee Name] ASC, [Region] ASC, [Email_ID] ASC, [DOB] ASC, [Joining Date] ASC, [Gross Salary] ASC

我想要报告使用的表的不同列列表

预期输出

Employee 
Email 
Region 
DOB 
Joining Date 
Gross Salary 
Leaving Date 
Basic Salary

我有一个想法是将其与,分开,但是在来自关键字之后会有很多混淆和复杂以避免其他字符串。

任何人都可以建议一个简单的解决方案。

3 个答案:

答案 0 :(得分:1)

我用以下解决方案包装它

  declare @str nvarchar(max)
  set @str = (select ReportSQL from tblRB_Report where PK_ReportID = 15)
  set @str = REPLACE(@str,']',' ')
   set @str = REPLACE(@str,'[',' ')
  set @str = REPLACE(@str,'select',' ')

 set @str = SUBSTRING(@str,0,charindex('FROM',@str))
  --print @str


sELECT * from  [dbo].[StringSplit](@str,',')

答案 1 :(得分:0)

你在谈论这件事吗?这将为您提供列名列表

SELECT c.COLUMN_NAME
  FROM INFORMATION_SCHEMA.[COLUMNS] c  WHERE c.TABLE_NAME = 'table_name'

答案 2 :(得分:0)

您必须使用字符串函数进行解析,例如在C#中,它将是IndexOf()和Substring()。

P.S。似乎这个问题与sql-server btw无关。

相关问题