我有一个MS-SQL表,标题为' ImportCount'
此列中的数据遵循以下格式:
ImportCount
[Schedules] 1376 schedule items imported from location H:\FOLDERA\AA\XX...
[Schedules] 10201 schedule items imported from location H:\FOLDERZZ\PERS\YY...
[Schedules] 999 schedule items imported from location R:\PERS\FOLDERA\AA\XX...
[Schedules] 21 schedule items imported from location H:\FOLDERA\MM\2014ZZ...
我想要做的是提取数据的数字部分(长度不同),但我正在努力获得正确的结果。非常感谢任何帮助!
感谢。
答案 0 :(得分:1)
尝试
select left(ImportCount, patindex('%[^0-9]%', ImportCount+'.') - 1)
答案 1 :(得分:0)
select SUBSTRING(ImportCount,13,patindex('% schedule items%',ImportCount)-13) from table name
答案 2 :(得分:0)
试试这个..你也可以将它声明为SQL函数。
DECLARE @intText INT
DECLARE @textAplhaNumeric varchar(100)
set @textAplhaNumeric = '1376 schedule items imported from location'
SET @intText = PATINDEX('%[^0-9]%', @textAplhaNumeric)
BEGIN
WHILE @intText > 0
BEGIN
SET @textAplhaNumeric = STUFF(@textAplhaNumeric, @intText, 1, '' )
SET @intText = PATINDEX('%[^0-9]%', @textAplhaNumeric)
END
END
Select @textAplhaNumeric //output is 1376
如果是NULL或空值,它将起作用。
答案 3 :(得分:0)
请尝试:
SELECT LEFT(Val,PATINDEX('%[^0-9]%', Val+'a')-1) from(
SELECT
STUFF(ImportCount, 1, PATINDEX('%[0-9]%', ImportCount)-1, '') Val
FROM YourTable
)x