【发布时间】:2019-07-11 04:38:49
【问题描述】:
我想知道我们如何在 Cross Apply Join 中提及列名并指定表名
已经在工作的查询:
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
【问题讨论】:
-
您使用哪种数据库系统?甲骨文? SQL 服务器?后格雷斯?您能否将示例代码减少到绝对最小值?
-
使用您的预期输出添加示例数据。
-
我想取出最后一个目录 '/Directory_A/Directory_B/Directory_C/Folder1/Folder2' 的名称的结果,即 C,它与上述工作查询一样按预期出现。但我有一个要求,我需要对表格的特定列进行此操作
标签: sql sql-server cross-apply