0

我有一个 SQL Server 2008 数据库,其中包含一个名为“page_data”的表,其中包含一个名为“path”的 NVARCHAR 列

路径列将包含如下数据:

/aaa/bbb
/aaa/bbb/zzz
/aaa/ccc
/aaa/ccc/xxx
/aaa/ddd
/aaa/ddd/yyy

我想选择路径数据仅包含两个斜杠的行。所以我应该得到以下数据返回:

/aaa/bbb
/aaa/ccc
/aaa/ddd

我想不出该怎么做。任何人都可以帮忙吗?

4

1 回答 1

1

请试试:

;with T as (
    select 0 as row, CHARINDEX('/', Col) pos, Col from page_data
    union all
    select row + 1, CHARINDEX('/', Col, pos + 1), Col
    from T
    where pos > 0
)
select distinct MIN(Col1) Col
from(
    select 
         row,
         Col,
         (case when row=2 then SUBSTRING(Col, 1, pos-1) else Col end) Col1
    from T 
    where pos > 0 and row<3
)x
group by Col

SQL Fiddle 演示

于 2013-10-01T06:39:01.817 回答