SQL從雜亂的字串欄位中統計數字部份的最大值

2021-10-25 08:01:56 字數 643 閱讀 7377

有一組如以下欄位的值,雜亂無章,如何使用sql提取它的數值部份的最大值呢?

17002

17003

999-pcba

a010-b000

a1124

aqed03

b010-0237001

f010-027pe1021

f010-3300209

f010-80102251

f010-998000-000

辦法如下:

1、建立一函式,過慮欄位中的數值部份

create function dbo.getnofromstr(@str nvarchar(100))

returns bigint

asbegin

while patindex('%[^0-9]%',@str)>0

begin

set @str=stuff(@str,patindex('%[^0-9]%',@str),1,'')

endreturn convert(bigint,@str)

end2、直接查詢使用max 函式

select max(dbo.getnofromstr(cinvcode)) as invcode from inventory

3、查詢會選出欄位的最大值了。

在一字串中統計單詞

輸入一行字元,統計其中有多少個單詞,單詞之間用空格分隔開 include void main printf 在這一行字元中共有 d個單詞 n num 變數i 作為迴圈變數,num用來統計單詞個數,word 作為判別是否為單詞標記,若word 0 表示未出現單詞,如果出現單詞 word 就置成1。單詞...

字串的統計字串

給定乙個字串,統計每乙個字母的出現次數 比如aabbccc,列印出來就是a 2 b 2 c 3 思路還是採取遍歷,注意這幾個題的思路都比較類似 要注意這裡的sstream 這裡的clear 並非清空了緩衝區,而只是重置標誌,如果要重置緩衝區,則應為ss.str include include usi...

字串的統計字串

題目 給定乙個字串str,返回str的統計字串。例如,aaabbadddffc 的統計字串為 a 3 b 2 1 d 3 f 2 c 1 補充題目 給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上第index個字元。例如,a 1 b 100 所代表的原始字串上...