簡體   English   中英

如何在SQL Server中的交叉應用聯接中指定列名

[英]How to specify column names in cross apply join in SQL Server

我想知道我們如何在“交叉應用聯接”中提及列名並指定表名

已經工作的查詢:

select v.*, left(v.dir, charindex('/', v.dir) - 1) as dirname
from (values ('/Directory_A/Directory_B/Directory_C/Folder1/Folder2') ) t(path) cross apply
     (values (stuff(t.path, 1, len(t.path) - charindex(reverse('Directory_'), reverse(t.path)) + 1, ''))) v(dir)

預期查詢:

select v.*, left(v.dir, charindex('/', v.dir) - 1) as dirname
from (values (“ColumnName”) ) t(path) cross apply
     (values (stuff(t.path, 1, len(t.path) - charindex(reverse('Directory_'), reverse(t.path)) + 1, ''))) v(dir) from table name

它會為你工作

DECLARE @path VARCHAR(100)='/Directory_A/Directory_B/Directory_C/Folder1/Folder2'

SELECT SUBSTRING( @path,LEN(@path)-LEN(SUBSTRING(@path,PATINDEX('%folder%',@path), 100))-1, 1)

我認為您只需要表引用:

select v.*, left(v.dir, charindex('/', v.dir) - 1) as dirname
from <tablename> tab cross apply
     (values (tab.ColumnName) ) t(path) cross apply
     (values (stuff(t.path, 1, len(t.path) - charindex(reverse('Directory_'), reverse(t.path)) + 1, ''))) v(dir) from table name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM