从包含数字和单词的列中提取特定数字

时间:2017-08-09 16:45:23

标签: sql postgresql

1

7

˚F

3

2

C

1

d

6

4

ë

B'/ P>

我希望能够使用where子句中的IN()运算符对其进行过滤,并仅提取数字。该列是一个varchar,因此它会在postgres

中作为错误返回

3 个答案:

答案 0 :(得分:0)

select substring(colname FROM '[0-9]+') from tablename

答案 1 :(得分:0)

您可以使用WHERE Clausule上的ISNUMERIC()函数过滤数字。

这样的事情:

SELECT *
FROM Table1
WHERE ISNUMERIC(column_name)=1

正如评论中所提到的,这适用于SQL Server,但您可以在此示例后在PostgreSQL中创建自己的ISNUMERIC函数:

isnumeric() with PostgreSQL

答案 2 :(得分:0)

我最后在SELECT --- cast(substring( column FROM'[0-9] +')中作为int)进行了subquerying,这在WHERE 列< / em>〜'^ \ d + $'在FROM中作为自己的表。用IN(1,2,3)

拉出我需要的整数