我正在嘗試使用SQL來確定整個表中的任何數據的最大值。請注意,我的意思是整個表格,而不僅僅是一列或一行。整個表的類型是varchar,目標是確定最大值是什麼(varchar 255,varchar 100等)。如何使用SQL查找表中的最大值?
例子:
Name | ID
John | 1
Jake | 2
James | 3
應該返回「詹姆斯」,因爲它是在整個表的最大值。我也想要這個長度。
我正在嘗試使用SQL來確定整個表中的任何數據的最大值。請注意,我的意思是整個表格,而不僅僅是一列或一行。整個表的類型是varchar,目標是確定最大值是什麼(varchar 255,varchar 100等)。如何使用SQL查找表中的最大值?
例子:
Name | ID
John | 1
Jake | 2
James | 3
應該返回「詹姆斯」,因爲它是在整個表的最大值。我也想要這個長度。
由於ll列是varchar,您可以將表格UNPIVOT放入一列,然後選擇由LEN()DESC排序的TOP 1值。
請注意,如果列的長度不同,則需要將它們投射到具有相同長度的所有列,以便它們可以一起轉移。
輝煌,謝謝! –
查找互聯網的數據類型以及它們需要多少字節例如int = 4字節。 如果你有類型,如VARCHAR或nvarchar 使用max(len(column))+2
長度會給你這是basicly相同
我特別聲明,我不希望它只是一列,所以這沒有幫助。 –
你可以使用這個表中的所有列,正如我所說如果它是int你的列大小將是4字節無關緊要的值是什麼,如果類型是字符它的長度,如果它的varchar或nvarchar長度+ 2 如果你可以找到1列這樣的,你可以找到所有 – JurgenHakanHifzi
你可以得到的字節大小的字節使用
select max(datalength(col0)+datalength(col1)+datalength(col2)...) from table
警惕,這可能是一個昂貴的查詢
...昂貴的查詢* –
感謝使它更清晰! –
你將不得不編寫查詢一個特定表:
select top(1) value
from
(
select datalength(col1) as len, cast(col1 as varchar(max)) as value from mytable
union all
select datalength(col2) as len, cast(col2 as varchar(max)) as value from mytable
union all
...
) data
order by len desc;
樣本數據?你有什麼嘗試? –
您能否提供表格結構? – Tyron78
什麼是「字節值」?你的問題沒有任何意義。樣本數據和期望的結果將有所幫助。 –