重命名值输出并将值组合在SQL中的一列中

时间:2016-12-28 20:07:00

标签: sql sql-server

我有一张桌子列出运动员和他们参加或不参加的运动。我想将结果值列在一列中。

   SELECT    Ind_First_Name, Ind_Last_Name,
             CASE WHEN Baseball = 'Y' THEN 'Baseball |' ELSE '' END+ ' ' +
             CASE WHEN Football = 'Y' THEN 'Football |' ELSE '' END+ ' ' +
             CASE WHEN Soccer = 'Y' THEN 'Soccer' ELSE '' END

   from      Sports

我希望看到输出为:(假设足球有'N') Jane Doe棒球|足球

我的输出一直是空的空间。不确定如何使用Football值删除该空格是空白的。

2 个答案:

答案 0 :(得分:0)

将空格放在Case Statement中。

更新删除了管道和空格。

SELECT    Ind_First_Name, Ind_Last_Name,
             CASE WHEN Baseball = 'Y' THEN 'Baseball' ELSE '' END  +
             CASE WHEN Football = 'Y' AND Baseball = 'Y' THEN ' | Football' 
                  WHEN Football = 'Y' AND Baseball = 'N' THEN 'Football' ELSE '' END  +
             CASE WHEN Soccer = 'Y' AND (Football = 'Y' OR Baseball = 'Y') THEN ' | Soccer'                             
                  WHEN Soccer = 'Y' AND Baseball = 'N' AND Football = 'N' THEN 'Soccer' ELSE '' END    
   from      Sports

答案 1 :(得分:0)

你能试试吗?

SELECT    Ind_First_Name, Ind_Last_Name,
         CASE WHEN Baseball = 'Y' THEN 'Baseball | ' ELSE '' END +
         CASE WHEN Football = 'Y' THEN 'Football | ' ELSE '' END +
         CASE WHEN Soccer = 'Y' THEN 'Soccer' ELSE '' END

from      Sports