在数据库中查找最长coulmn的长度 - SELECT子查询

时间:2015-05-20 13:43:27

标签: select subquery sqlbase

我的SQL技能有限:

我有一个数据库(本例中为SQLBase),列中有几个LONGVAR。 我正在搜索具有特定类型的所有COLUMNS的实际长度。

SELECT tbname,name FROM sysadm.syscolumns where coltype='LONGVAR';

以上陈述有效。它为我提供了所有表和具有LONGVAR数据类型的相应列名。现在我想获取这些数据并搜索所有相应的表(行,所以数据)并查找相应LONGVAR列的长度(例如,查找最大值或超过特定限制的那些)。

我认为它可以通过嵌套SELECT语句的子查询来解决,但不知道如何制定语句。

1 个答案:

答案 0 :(得分:1)

我对SQLbase没有任何真正的了解,所以我可能会离开这里:但如果我试图在SQL Server上执行此操作,一个简单的方法就是执行以下操作:

SELECT 
    tbname,
    name, 
    'SELECT ''' + tbname + ''' AS TableName, ''' + name + ''' AS ColumnName, MAX(LEN(' + name + ')) AS ColumnLength FROM ' + tbname + ' -- add a WHERE clause here if needed' AS Query
FROM sysadm.syscolumns 
WHERE coltype='LONGVAR';

这将输出一组值,然后您可以将其复制/粘贴到新的查询编辑器窗口中并在运行之前进行检查。

其他更复杂的解决方案将涉及自动执行每个语句的动态SQL;但是,再一次,对SQLbase了解不多,这就是我要开始的地方。