基本上,我所拥有的是一行值,该值行中包含各种不同的内容。当前,值的范围从数字到“不可用”等值。
我如何能够从该行中获取所有float值,而将所有其他值都留在后面。
答案 0 :(得分:0)
欢迎堆栈溢出!您的问题很详细。最好提供更多的上下文,以便社区可以更好地回答您的问题。但是,做一些假设...
通常,表中的每一列都具有数据类型,因此(不了解您的表的其他信息)我只是说SELECT
包含您要查找的数字数据的列;例如
SELECT numberColOne, numberColTwo FROM table_of_stuff;
但是,如果您说给定的列可能会有一个浮点数 OR 一点文字(例如“ Not Available”),那么您的选择就很大程度上取决于RDBMS(MySQL,使用Oracle,SQL Server,SQLite等)。我想您可以在每列上使用CASE .. WHEN .. ELSE
构造,测试数字并产生字符串的前哨值。 ...但是那已经是您已经拥有的:数字和非数字数据的混合。
因此,如果您希望转换这样的源数据:
row 1 : 3.1415926 Not Available 2.1111 6.6667 Not Available
row 2 : 2.71828 1.2222 Not Available 3.33333 4.50
进入:
row 1 : 3.1415926 2.1111 6.6667
row 2 : 2.71828 1.2222 3.33333 4.50
然后,我同意@jarlh的评论:SQL不是您要使用的。在这种情况下,您可以使用SQL将表中的所有内容提取到导出文件中,然后使用代码(bash
,sed
,perl
等)处理该文件以将其删除。字符串值。正如@jarlh所说,SQL都是关于结构化数据的,如果您想要非结构化的数据,则需要组合工具。
HTH。