English 中文(简体)
如何从使用T-SQL的扼杀中获取数字部分?
原标题:How to get the numeric part from a string using T-SQL?

我的发言如下。

Input
--------------
2030031469-NAI 

为了获得数字部分,我使用了以下文字:

declare @str varchar(50)=  2030031469-NAI 

Select 
    @str
    ,SUBSTRING(@str, 1,  NULLIF(CHARINDEX( - , @str) - 1, -1))
        ,Left(@str,PATINDEX( %-% ,@str)-1)

取得以下产出:

Output: 
----------
2030031469

是否有其他容易/合法的方式这样做?

最佳回答
select left(@str, patindex( %[^0-9]% , @str+ . ) - 1)
问题回答

如果你动脉从字母开始,以编号为ERT-123

您可使用这一询问:

 (select  substring(@str,patindex( %[0-9]% , @str),len(@str)))

请核对这一数据,即在我的项目中用于抽取电话号码

 CREATE Function [dbo].[RemoveNonNumericCharacters](@Temp VarChar(1000))
    Returns VarChar(1000)
    AS
    Begin

        While PatIndex( %[^0-9]% , @Temp) > 0
            Set @Temp = Stuff(@Temp, PatIndex( %[^0-9]% , @Temp), 1,   )

        Return @TEmp
    End

摘录

DECLARE @Text NVARCHAR(100)=  extract only 23124R integer @#%% 
SELECT SUBSTRING(@Text, PATINDEX( %[0-9]% ,@Text), PATINDEX( %[^0-9]% ,SUBSTRING(@Text, PATINDEX( %[0-9]% ,@Text), LEN(@Text)))-1) [ONLY_INT]




相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签