SQL在许多列之一上使用REPLACE

时间:2016-05-16 17:27:48

标签: sql sql-server tsql

我有以下查询:

o.upvoteComment = function(post, comment) {
    return $http.put('/posts/' + post._id + '/comments/' + comment._id + '/upvote', null, {
        headers: {Authorization: 'Bearer '+auth.getToken()}
        }).success(function(data) {
            comment.upvotes += 1; 
        });
};

MailingList 表中有大约20列,其中一列名为地址。此列包含一些包含逗号的字段,我需要将其取出。所以我将查询更新为:

SELECT * FROM MailingList

但现在我有两个地址列。有没有办法只显示一个地址列,同时仍然对所有其他列使用通配符(*)?

3 个答案:

答案 0 :(得分:3)

没有办法做到这一点,尽管明确列出你想要的列是一个好主意。

答案 1 :(得分:1)

您可以使用以下查询进行操作:

  
      
  1. 将数据存入临时表
  2.   
  3. 删除不需要的cloumns
  4.   
  5. 获取结果并删除临时表
  6.   


SELECT *, REPLACE(Address, ',', '') AS Address2
INTO   #TempTable
FROM   MailingList

ALTER TABLE #TempTable
    DROP COLUMN [Address]

SELECT * FROM #TempTable
DROP TABLE #TempTable

答案 2 :(得分:0)

我同意暗影 - 如果可以的话,请避免使用*外卡...

我知道列出大表的select语句中的所有列都很痛苦所以这里有一个你可能不知道的快速捷径:在SQL Server Management Studio中,浏览对象资源管理器并找到你的表想要选择(MailingList)。右键单击它以查看上下文菜单,然后选择"脚本表为"那么"选择到"那么"新的查询编辑器窗口"。这将创建一个新的select语句,每列都拼写出来。将来,使用此方法创建select语句,查询,过程等,而不是*通配符。性能更好,看起来更好: - )

然后您可以使用replace函数解决别名问题。