例如:表生
name age age1 age2
aname 1 2 3
bname 2 3 3
我想要
age age1 age2
1 2 3
2 3 3
我可以通过
获得列select column_name from information_schema
where column like 'age%' and table_name ='student'
预先感谢
答案 0 :(得分:0)
您可以尝试使用动态SQL,使用STUFF
合并所有列,然后使用execute
函数动态执行SQL。
CREATE TABLE student(
name varchar(50),
age int,
age1 int,
age2 int
);
insert into student values ('aname',1,2,3);
insert into student values ('bname',2,3,3);
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((
SELECT distinct ', '+ COLUMN_NAME
from information_schema.columns
where COLUMN_NAME like 'age%' and table_name ='student'
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT ' + @cols + ' FROM student '
execute(@query)