2014-11-04 92 views
1

我在varchar格式的數據庫中有一列,但內容只有數字。 我不能將列更改爲int格式,並且需要使用varchar格式。varchar的最大值

如何才能找到最高的數字?

Category 
------- 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 

,如果我用這個

SELECT * FROM [Navision4].[dbo].[" & strCompany & "$eShopCategory] 
ORDER BY Category desc 

是我的輸出10,但我想輸出爲12

+0

你的語法看起來像MSSQL,但您標記與MySQL的問題?你的dbms是什麼? – Jens 2014-11-04 08:16:09

+0

@davek,這是一個錯誤的編輯。從發佈的查詢語法來看,它必須是MSSQL而不是MySQL。 – Rahul 2014-11-04 08:26:06

+0

@Rahul:我只是編輯了格式。 – davek 2014-11-04 08:37:15

回答

0

如果你CAST類別列INT在進行分揀像

SELECT * 
FROM [Navision4].[dbo].[" & strCompany & "$eShopCategory] 
ORDER BY CAST(Category AS INT) desc 

您還可以使用MAX()Category

SELECT MAX(CAST(Category AS INT)) 
FROM [Navision4].[dbo].[" & strCompany & "$eShopCategory] 
+0

很棒,謝謝! – 2014-11-04 08:36:26

0
select category from mytable 
order by length(category) desc, category desc 
limit 1 

函數(或len(catgegory)如果DB實際上是SQL Server)的