有没有人知道是否有办法找到最长的长度 在Oracle的一列中排?
基本上我需要获得最长行的长度,然后使用该长度加1
使用SUBSTR
使列的输出比最长的字符串长一个字符。
由于
修改
感谢您的建议。
但是,MAX(LENGTH(column_name)) AS MAXLENGTH
方法为我提供了我想要的数字,但当我尝试将其与SUBSTR(column_name,1, MAXLENGTH)
一起使用时,我收到了无效的标识符错误。
所以我做了一个函数来返回我想要使用的数字:
SUBSTR(column_name,1,maxlengthfunc)
这给了我以下输出:
SUBSTR(NAME,1,MAXLENGTHFUNC)
而不是:
SUBSTR(NAME, 1, 19)
并没有像我需要的那样缩小输出列的大小。
另外
RTRIM(name)||' '
在SQL开发人员中没有为我做任何事情。
感谢。
答案 0 :(得分:29)
这适用于VARCHAR2列。
select max(length(your_col))
from your_table
/
CHAR列显然都是相同的长度。如果列是CLOB,则需要使用DBMS_LOB.GETLENGTH()。如果它很长,那真的很棘手。
答案 1 :(得分:5)
SELECT max(length(col_name)+1) as MyOutput
FROM table_Name
正常输出看起来像
MyOutput
1 5
新输出看起来像
MyOutput
1 6
答案 2 :(得分:3)
这应该做你想要的:
select max(length(MyColumn)) from MyTable;
根据您要实现的目标,您可能也有兴趣知道您可以在列中输出数据加上一个空格,如下所示:
select rtrim(MyColumn)||' ' from MyTable;
答案 3 :(得分:2)
从table_name中选择max(LENGTH(column_name))。
答案 4 :(得分:1)
select max(length(MyColumn)) as MaxLength
from MyTable
答案 5 :(得分:1)
没有功能:
select
rpad(tbl.column_name, length_info.max_length+1, ' ') as target_string
from
table_name tbl,
(
select max(length(column_name)) max_length
from my_table
)
length_info
使用您的功能:
select
rpad(tbl.column_name, MaxLengthFunc + 1, ' ') as target_string
from
my_table tbl
将您的函数声明为determinictic
以获得更好的效果:
create or replace function MaxLengthFunc
return number
deterministic
as
vMaxLen number;
begin
select max(length(column_name))
into vMaxLen
from table_name;
return vMaxLen;
end;
答案 6 :(得分:0)
要使maxlength可用,您可能希望从嵌入的选择中获取它
select <do something with maxlength here>
from
(select x.*,
( select max(length(yourcolumn)) from yourtable) as maxlength
from yourtable x)
答案 7 :(得分:0)
要将列中的所有值填充到最长值+1,您可以执行以下操作:
SELECT RPAD( column_name ,(SELECT MAX(LENGTH( column_name ))+1 FROM table)) FROM table;
答案 8 :(得分:0)
要使用max in列定义,我建议使用正确的方法:
CoreImage
只需调用函数:
import CoreImage
let ciContext = CIContext(options: nil)
guard let inputImage = CIImage(image: yourUIImage),
let mask = CIFilter(name: "CIGaussianBlur") else { return }
mask.setValue(inputImage, forKey: kCIInputImageKey)
mask.setValue(10, forKey: kCIInputRadiusKey) // Set your blur radius here
guard let output = mask.outputImage,
let cgImage = ciContext.createCGImage(output, from: inputImage.extent) else { return }
outUIImage = UIImage(cgImage: cgImage)