我正在研究 SQL Server 資料庫,并希望在列中找到一個具有連續數字的數字。
假設我在一列中有以下值
column_A
--------
123456
345678
214562
457215
456789
我想在結果中獲得以下具有連續數字的行:
123456
345678
456789
我試過這個:
select *
from Table1
where column_A like '^([0-9a-z])\1 '
但正則運算式似乎在 SQL Server 中不起作用。
非常感謝任何幫助。
uj5u.com熱心網友回復:
您可以簡單地嘗試如下。
select * from Table1 where '0123456789' like '%' column_A '%'
同樣的事情可以使用遞回 CTE 來完成,如下面的查詢。
declare @table table(column_A varchar(10))
insert into @table select '123456'
insert into @table select '345678'
insert into @table select '214562'
insert into @table select '457215'
insert into @table select '456789'
;with cte as (
select v.column_A os, v.column_A, 1 as m
from @table v
union all
select os,stuff(column_A, 1, 1, ''),
case when cast(left(column_A, 1) as int) 1 = cast(left(stuff(column_A, 1, 1, ''),1) as int) then 1 else 0 end as m
from cte
where column_A > ''
)
select os
from cte
where column_A <>'' and m=1
group by os
having count(m) =len(os)
輸出
os
-----
123456
345678
456789
uj5u.com熱心網友回復:
也許這會奏效
SELECT column_A FROM TABLE1
where
column_A =
CONCAT((SELECT LEFT(column_A,1) FROM TABLE1)),(SELECT LEFT(column_A,1)
FROM TABLE1) 1,(SELECT LEFT(column_A,1) FROM TABLE1) 2,(SELECT
LEFT(column_A,1) FROM TABLE1) 3,(SELECT LEFT(column_A,1) FROM TABLE1) 4,
(SELECT LEFT(column_A,1) FROM TABLE1) 5)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/524185.html
標籤:sql服务器tsql
上一篇:TSQL使用修改來初始化一個空列
