[英]SQL - get only numbers including minus value not alphabets and character from a column
我有一列包含数字(包括负值),字母,字母数字和单个字符符号(如-,&,@)。
如何摆脱字母,字母数字和符号并获得列的总和。
我只需要在select语句中使用条件,而不能在where条件中使用。 因为它不应该影响其他列的结果。
这是我尝试过的:
SELECT COUNT(*), CASE
WHEN REGEXP_LIKE(REMD_PART_CSN, '^-?[0-9]\d*(\.\d+)?$') THEN SUM(REMD_PART_CSN)
ELSE NULL
END
FROM <TABLE>
这个怎么样?
SELECT
COUNT(*),
SUM(
CASE
WHEN REGEXP_LIKE(REMD_PART_CSN, '^-?\d+(\.\d+)?$')
THEN CAST(REMD_PART_CSN AS NUMBER)
ELSE 0
END
)
FROM yourtable
即对于每一行,如果REMD_PART_CSN
看起来像一个数字,则将其转换为数字,否则使用0
代替。 最后,返回所有这些值的总和。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.