如果使用where条件更改了列的数据类型,如何查找列的记录

时间:2013-05-21 06:12:46

标签: mysql sql oracle

要知道表中列的数据类型是什么,我们使用'desc schema.table_name'。如果特定列的数据类型已从character更改为numeric

如何检查该表中是否有数据类型字符的记录。

我看到Select distinct column_1 from schema.table_name提供了该列中的所有不同值

但是我们可以使用'character'条件检查where的数据类型是否进入此表吗?

3 个答案:

答案 0 :(得分:0)

如果你理解正确,你可能想在MySql中使用REGEXP

SELECT * 
  FROM table1
 WHERE column1 NOT REGEXP '^[0-9]+$'

SQLFiddle (MySql)

REGEXP_LIKE如果是Oracle

SELECT * 
  FROM table1
 WHERE NOT REGEXP_LIKE(column1, '^[0-9]+$')

或没有REGEXP_LIKE

SELECT * 
  FROM table1
 WHERE LENGTH(TRIM(TRANSLATE (column1, '0123456789',' ')))  IS NOT NULL

SQLFiddle (Oracle 11g)

答案 1 :(得分:0)

如果您使用的是Sql。您可以使用此查询。

select column_name from table_name where column_name not like [0-9]

答案 2 :(得分:0)

如果您使用的是oracle服务器,请尝试此查询

SELECT * FROM table_name WHERE  regexp_like(column_name,'[^0-9]+')