我有一个表格如下图所示,粗体字是列名
KEYWORD PART1_D1 PART1_D2 PART1_D3 PART1_D4 PART2_D5
y 1 0 0 0 1
中文3 2 2 1 1
东京1 0 0 0 1
日本1 0 0 0 1
北京0 1 0 0 0
尚0 0 1 0 0
我写了一个查询如下
从INFORMATION_SCHEMA.COLUMNS中选择COLumn_NAME,其中TABLE_NAME ='sample',COLumn_NAME喜欢'%part1%' 输出是iam只获得如下所示的列
COLUMN_NAME part1_d1 part1_d2 part1_d3 part1_d4
但我想从表中获取记录,如我的输出应如下所示
关键字PART1_D1 PART1_D2 PART1_D3 PART1_D4
y 1 0 0 0
中文3 2 2 1
东京1 0 0 0
日本1 0 0 0
北京0 1 0 0
尚0 0 0 0
答案 0 :(得分:0)
如果你提前知道列名,只需要UNION一个额外的记录。当然,那么你的结果集必须包含所有字符字段:
Select 'KEYWORD' as KEYWORD, 'PART1_D1' as PART1_D1, 'PART1_D2' as PART1_D2,
'PART1_D3' as PART1_D3, 'PART1_D4' as PART1_D4, 'PART2_D5' as PART2_D5,
UNION
Select KEYWORD, cast(PART1_D1 as varchar(50), cast(PART1_D2 as varchar(50),
cast(PART1_D3 as varchar(50), cast(PART1_D4 as varchar(50),
cast(PART2_D5 as varchar(50)
From sample