假设这是我的桌子:
Name | Surname | Serial no. | Price
-----------------------------------------------
John | Smith | A12444dW33 | 1,234
Paul | Harrison | D2344fGGfd | 2,5
Richard | Morris | We945kfGGE | 3
George | Washington | ssf4gt66hJ | 7,39494
如何获得实际的最长的为每一列的值在一排的基础上,长度是多少?
我需要一些对每种数据类型都有效的数字-NUMBER,VARCHAR,DATE等。
例如表的输出应该是(序列号都是相同的长度,因此在这里并不重要...):
Name | Surname | Serial no. | Price
-----------------------------------------------
Richard | Washington | A12444dW33 | 7,39494
我发现的所有问题都只针对一栏,但我需要所有栏的解决方案。
您可以使用keep
:
select max(name) keep (dense_rank first order by length(name) desc),
max(Surname) keep (dense_rank first order by length(Surname) desc),
max(serial) keep (dense_rank first order by length(serial) desc),
max(price) keep (dense_rank first order by length(price) desc)
from t;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句