0

如果在SELECT查询名称中为每一列和一列使用,TRIM(TRAILING '0' FROM ColumnName) AS ColumnName则可以。

但是如果SELECT *并且想要Trim Trailing 0用于一列怎么办?

使用类似的东西SELECT *, REPLACE(ColumnName, '0', '')?但只需要更换结局0

4

2 回答 2

0

尝试:

SELECT data.*,
       TRIM(TRAILING '0' from ExchangeRate) AS ExchangeRateTrimmed
FROM (.
  ... the subquery ...
) data

但是,此查询返回子查询中的所有列(包括ExchangeRate列)以及一个新的附加列 - ExchangeRateTrimmed

不幸的是,ANSI SQL标准没有使用'*'的shotrtcut,其语义为“给我所有列,但只修改其中一个”,也没有“给我除一个之外的所有列”。

现在的SELECT *意思是“给我所有的列 - 因为它们在表(或子查询)中,但无法更改它们”。

如果要使用表达式更改一列,则必须在 SELECT 子句中列出所有其他列:

SELECT col1,
       col2,
       .....
       expression on col X [as col_name],
       ....
       colN
FROM table
于 2013-09-01T13:21:54.173 回答
0

select *.TRIM(TRAILING '0' from ColumnName) AS ColumnName

于 2013-09-01T08:10:32.807 回答