當前位置:首頁 » 編程語言 » sql查詢出內容只取五位數字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql查詢出內容只取五位數字

發布時間: 2022-05-26 05:53:34

A. sql查詢只有四位的欄位

substring(B,1,4)
從B欄位中取第1至第4位字元

B. sql 查詢語句,關於某個欄位位數判斷。

1、首先我們准備一個數據表。

C. sql,字元串中取數字

1、創建測試表,

create table test_str(id int, v_str varchar2(20));

D. SQL語句提取字元串中數字

比如你的表叫作TALBE1,欄位是str1,類型為nvarchar,那麼找出有湘政發的最大號加1這樣寫
select max(convert(int,substring(str1,patindex(N'%[1234567890]%',str1),len(str1)-patindex(N'%[1234567890]%',str1)+1-patindex(N'%[1234567890]%',reverse(str1))+1)))+1 from table1 where str1 like N'%湘政發%'
測試通過,耗時很長,請認真試試。
這是sql server 的寫法。
如果是ORACAL或其它的SQL語言您可以到這里參考一下。你會發現,用SQL SERVER我的方法要比他的好

E. sql 語句一個欄位有5位數字,我想自己後三位數字有兩個相同的,怎麼查詢

是要查出後三位中有兩個數字相同的該欄位是吧?
select 目標欄位
from tablename
where substring('目標欄位',3,1)=substring('目標欄位',4,1) or
substring('目標欄位',3,1)=substring('目標欄位',5,1) or
substring('目標欄位',4,1)=substring('目標欄位',5,1) or
這種方法查出來的欄位可能包括後三位都相同的情況,樓主可以自己再加條件,主要思路就是這樣

F. 在SQL語句中如何用正則取出一個字元串的前幾位數字

  1. SQL 取字元串的前幾位數字,SQL 關鍵字 substring

  2. substring 使用方法,參考下列SQL:

  3. declare @T nvarchar(10)

  4. set @T='12345abcde'

  5. select substring(@T,1,5)

  6. 結果如下:12345

  7. 如果是SQL 寫正則表達式判斷,只能通過存儲過程或函數來處理

  8. SQL 如下:

  9. CREATE FUNCTION dbo.find_regular_expression
    (
    @source varchar(5000), --需要匹配的源字元串
    @regexp varchar(1000),--正則表達式
    @ignorecase bit = 0--是否區分大小寫,默認為false
    )
    RETURNS bit--返回結果0-false,1-true
    AS
    BEGIN
    --0(成功)或非零數字(失敗),是由 OLE 自動化對象返回的 HRESULT 的整數值。
    DECLARE @hr integer
    --用於保存返回的對象令牌,以便之後對該對象進行操作
    DECLARE @objRegExp integer DECLARE @objMatches integer
    --保存結果
    DECLARE @results bit

    /*
    創建 OLE 對象實例,只有 sysadmin 固定伺服器角色的成員才能執行 sp_OACreate,

    並確定機器中有VBScript.RegExp類庫
    */
    EXEC @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
    IF @hr <> 0 BEGIN
    SET @results = 0
    RETURN @results
    END
    /*
    以下三個分別是設置新建對象的三個屬性。下面是'VBScript.RegExp'中常用的屬性舉例:
    Dim regEx,Match,Matches '建立變數。
    Set regEx = New RegExp '建立一般表達式。
    regEx.Pattern= patrn '設置模式。
    regEx.IgnoreCase = True '設置是否區分大小寫。
    regEx.Global=True '設置全局可用性。
    set Matches=regEx.Execute(string) '重復匹配集合
    RegExpTest = regEx.Execute(strng) '執行搜索。
    for each match in matches '重復匹配集合
    RetStr=RetStr &"Match found at position "
    RetStr=RetStr&Match.FirstIndex&".Match Value is '"
    RetStr=RetStr&Match.Value&"'."&vbCRLF Next
    RegExpTest=RetStr
    */
    EXEC @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
    IF @hr <> 0 BEGIN
    SET @results = 0
    RETURN @results
    END
    EXEC @hr = sp_OASetProperty @objRegExp, 'Global', false
    IF @hr <> 0 BEGIN
    SET @results = 0
    RETURN @results
    END
    EXEC @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignorecase
    IF @hr <> 0 BEGIN
    SET @results = 0
    RETURN @results
    END
    --調用對象方法
    EXEC @hr = sp_OAMethod @objRegExp, 'Test', @results OUTPUT, @source
    IF @hr <> 0 BEGIN
    SET @results = 0
    RETURN @results
    END
    --釋放已創建的 OLE 對象
    EXEC @hr = sp_OADestroy @objRegExp
    IF @hr <> 0 BEGIN
    SET @results = 0
    RETURN @results
    END
    RETURN @results
    END

G. sql語句問題,怎麼將查詢出來的數據,只取第2第3條數據

樓主好,有個方法可以獲取。使用row_number()函數。舉個例子,假設你你有一個產品表,有一個銷量表,你需要提取產品的銷量排名的第二條和第三條,則:
select * from (
select *,row_number()over(partition by a.產品ID order by b.銷量 desc) as cn from 產品表 a
join 銷量表 b on a.產品ID=b.產品ID
) a where a.cn in (2,3)
如果不會,還可以追問

H. SQL 查詢中如何取出中間指定的幾位數

欄位=「OM手冊」
select substring(欄位,3,2),* from 表
最後結果就是 「手冊」

I. SQL 只截取數字的函數,

select substring(列名,開始位置,結束位置) from tb

J. 如何在sql語句中查詢只帶數字的欄位

你應該希望提取的欄位只要含有數字就提出,剔除空和不含數字的字元串。

select * from table where regexp_substr(check,'[0-9]+') is not null