要按包含整数的varchar排序,可以使用正则表达式提取出其中的整数,并将其转换为数字进行排序。以下是一个示例解决方法:
SELECT column_name
FROM table_name
ORDER BY CAST(REGEXP_REPLACE(column_name, '[^0-9]', '') AS INTEGER)
在上面的代码中,column_name是包含整数的varchar列的名称,table_name是表的名称。
该代码使用REGEXP_REPLACE函数和正则表达式[^0-9]来删除column_name中的除了数字外的所有字符。然后使用CAST函数将提取出的数字转换为整数。最后,使用ORDER BY子句按提取出的整数进行排序。
请注意,上述代码中的正则表达式假设数字只包含数字字符0-9。如果包含其他字符(例如正负号、小数点等),则需要适当修改正则表达式。