在MS SQL中跳过空值

时间:2015-01-28 20:55:47

标签: sql sql-server-express sql-server-2014

背景

创建一个具有多个具有唯一标识符的相同输入的数据库,例如:input_option_1data_type_1input_option_2, data_type_2等... input_option_1data_type_1input_option_2以及data_type_2是单独的行和输入。 input_option_1data_type_1是第1行,input_option_2data_type_2是第2行。

过程:

当我创建一个针对数据的简单查询时,代码如下所示:

use DB_test2
select input_option_1, data_type_1, input_option_2, data_type_2
from dbo.page_1

输出:

输出正如所调用的那样,看起来像这样

input_option_1 data_type_1  input_option_2  data_type_2    
21             numerical    34A             alphanumeric

问题:

我要做的是为input_option_1input_option_2创建一列,为data_type_1data_type_2创建一列。

示例:

这就是我想要的样子。

input_option    data_type    
21              numerical    
34a             alphanumeric

1 个答案:

答案 0 :(得分:1)

使用UNION:

SELECT input_option_1 AS [Input_Option],
  data_type_1 AS [Data_Type]
FROM dbo.Page_1
UNION ALL
SELECT input_option_2 AS [Input_Option],
  data_type_2 AS [Data_Type]
FROM dbo.Page_1
ORDER BY [Input_Option],
   [Data_Type]

这会有效但是当你添加更多列时需要修改这个查询,它显然不是最佳的,但它是一个解决方案。