从查询中的一列中修剪尾随0选择*

时间:2013-09-01 08:05:47

标签: mysql

如果在SELECT查询名称中,每列和一列使用TRIM(TRAILING '0' FROM ColumnName) AS ColumnName,那么确定。

但如果SELECT *并希望将Trim Trailing 0用于一列呢?

使用SELECT *, REPLACE(ColumnName, '0', '')之类的内容?但是只需要替换结尾0

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试:

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

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

不幸的是,ANSI SQL标准没有使用带有语义的'*'的喷射式“给我所有列,但只修改其中一个”,也不“给我所有列除了一个”。

现在SELECT *表示“给我所有列 - 就像它们在表格(或子查询)中一样,无法更改它们”。

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

SELECT col1,
       col2,
       .....
       expression on col X [as col_name],
       ....
       colN
FROM table