基本的想法是创建一个语句结果集,它将为您创建表并填充正确的数据。运行以下来生成语句。然后您可以手动执行这些语句(复制/粘贴)或从脚本中执行这些语句。
的SQL Server实例
SELECT DISTINCT
'SELECT * INTO [' + TableName.FEATURE_CLASS + '] FROM TableName WHERE FEATURE_CLASS = ''' + TableName.FEATURE_CLASS + ''';'
FROM
TableName
如果您在FEATURE_CLASS列的任何特殊字符,你可能要考虑在上面的脚本中删除它们,以防止那些无效或艰难的工作表名称用。
例如:
...
'SELECT * INTO [' + REPLACE(TableName.FEATURE_CLASS, '.', '') + '] FROM TableName WHERE FEATURE_CLASS = ''' + TableName.FEATURE_CLASS + ''';'
...
的MySQL实例
SELECT DISTINCT
CONCAT('CREATE TABLE `', DB1.FEATURE_CLASS,
'` AS SELECT * FROM DB1 WHERE FEATURE_CLASS = ''',
DB1.FEATURE_CLASS, ''';') AS statements
FROM DB1;
这会给你一个MySQL的命令是这样的:
CREATE TABLE `feature_class_value` AS
SELECT * FROM DB1
WHERE FEATURE_CLASS = 'feature_class_value';
退房MySQL的文档的更多有关CREATE TABLE SELECT选项的信息https://dev.mysql.com/doc/refman/5.7/en/create-table-select.html。
50,000行不是那么大。无论如何,我不清楚列数据是不是......“feature_class”中的值是逗号分隔列表还是其他一些情况?你能在这一栏中发布一个小例子的数据吗? –
阅读! https://stackoverflow.com/a/16812941/3617531 –
我会同意@PaulT。因为50K行根本不大。如果您的桌子尺寸存在性能问题,那么您可能只需要优化。我可以想象你也可以有其他的理由来做到这一点。 –