将两列数据合并为一列,留下空值

Eni*_*ate 3 sql t-sql sql-server stored-procedures sql-server-2014

我的表格有四列,如下所示

表 - 订阅有这样的数据

  part_id     subscription   policylicense    enterpriselic
   part1        sub1          null                null
   part2        sub1          pl1                 null
   part3        sub1          null                enterpr1
Run Code Online (Sandbox Code Playgroud)

我想得到下面这样的数据

  part_id     subscription   license    
   part2        sub1          pl1                 
   part3        sub1          enterpr1                
Run Code Online (Sandbox Code Playgroud)

如何将合并的许可证数据放入一列,在同一个表中留下空值..我在这里使用 sql server

任何人都可以帮助解决这个问题,这将非常感谢我.. 提前非常感谢..

Val*_*ica 6

这是使用COALESCE() 的另一个解决方案

SELECT
    part_id
    ,subscription
    ,COALESCE(policylicense, enterpriselic) AS license
FROM subscription
WHERE COALESCE(policylicense, enterpriselic) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)


Sta*_*dii 0

SELECT 
part_id ,
subscription,   
license  = ISNULL(policylicense,enterpriselic)
FROM <table>
WHERE 
policylicense IS NOT NULL OR enterpriselic IS NOT NULL
Run Code Online (Sandbox Code Playgroud)