我有一个盒子内的盒子数据库。最大嵌套深度为10,因此每个盒子最多可以有9个父级或子级位置。一个字段包含每个框的层次结构-即ABC内的框DEF:
SELECT hierarchy from INVENTORY WHERE boxname = 'DEF'
返回“ ABC-> DEF”。
我现在需要允许用户重命名框。我正在尝试使用SQL的REPLACE函数来完成此操作,但据我所知,它不能在子字符串上工作。我尝试过:
update inventory
set hierarchy = replace(hierarchy, 'DEF', 'XYZ')
并且这不会像我期望的那样将层次结构更新为“ ABC-> XYZ”
我希望将其用作“ Ctrl + F查找和替换”功能,但是似乎无法执行以下操作:
有人知道这两种方法是否确实可行吗?
我正在使用TSQL。
根据要求采样数据:
输入:
| name | parent1 | parent2 | ... | hierarchy |
| --- | --- | --- | --- | --- |
| DEF | ABC | | | ABC -> DEF |
| JKL | DEF | ABC | | ABC -> DEF -> JKL |
输出:
| name | parent1 | parent2 | ... | hierarchy |
| --- | --- | --- | --- | --- |
| XYZ | ABC | | | ABC -> XYZ |
| JKL | XYZ | ABC | | ABC -> XYZ -> JKL |
答案 0 :(得分:0)
否,这是不可能的。使用REPLACE的SQL UPDATE不能用作“查找并替换”。 SQL没有此功能。