0

两个报告正在使用具有以下查询的表的列

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

我有一个想法将其拆分,,但有很多混淆和复杂性,以避免在from关键字之后出现其他字符串。

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

4

3 回答 3

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,',')
于 2013-08-21T07:04:27.557 回答
0

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

PS似乎这个问题与sql-server btw无关。

于 2013-08-21T06:20:34.800 回答
0

你在说这个吗??这为您提供了列名列表

SELECT c.COLUMN_NAME
  FROM INFORMATION_SCHEMA.[COLUMNS] c  WHERE c.TABLE_NAME = 'table_name'
于 2013-08-21T06:12:59.037 回答