SQL查询使用like运算符获取列的列和记录

时间:2010-08-11 10:08:30

标签: sql

我有一个表格如下图所示,粗体字是列名 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

1 个答案:

答案 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