如果在SELECT
查询名称中为每一列和一列使用,TRIM(TRAILING '0' FROM ColumnName) AS ColumnName
则可以。
但是如果SELECT *
并且想要Trim Trailing 0
用于一列怎么办?
使用类似的东西SELECT *, REPLACE(ColumnName, '0', '')
?但只需要更换结局0
如果在SELECT
查询名称中为每一列和一列使用,TRIM(TRAILING '0' FROM ColumnName) AS ColumnName
则可以。
但是如果SELECT *
并且想要Trim Trailing 0
用于一列怎么办?
使用类似的东西SELECT *, REPLACE(ColumnName, '0', '')
?但只需要更换结局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
select *.TRIM(TRAILING '0' from ColumnName) AS ColumnName