选择列,但转换给定类型的所有列

im *_*sed 5 sql

我需要一些逻辑上等价的东西

select cast(* as numeric IF data_type='decimal') from table_name
Run Code Online (Sandbox Code Playgroud)

我不知道该怎么做,所以我想把它分成两个步骤:

select * from table_name where data_type!='decimal'

select cast(* as numeric) from table_name where data_type='decimal'
Run Code Online (Sandbox Code Playgroud)

但我意识到我也不知道该怎么做。由于 SO,我可以找到十进制的列名列表,但由于这是一个批处理过程,我不能将其分为两个步骤

我正在尝试做的可能吗?我只想得到一组列,但如果它们是十进制的,则将它们转换为双精度。

谢谢!

Rah*_*thi 4

您必须像这样显式地转换每一列:

SELECT CAST(Col1 AS INT),CAST(Col2 AS INT)..
FROM Table 
Run Code Online (Sandbox Code Playgroud)