我有2个表格列,其中包含以下数据:
[item_name]
Free inodes on $1
[item_key]
vfs.fs.inode[/home,pfree]
我想编写一个select语句,将/ home放在$ 1所在的位置,以便返回以下内容:
Free inodes on /home
我在Google上尝试过一系列不同的搜索,但我不确定如何用这个来获得有用的结果。
答案 0 :(得分:1)
使用REPLACE
功能在SELECT
。
SELECT REPLACE([item_name], '$1', '/home') FROM [table_name]
现在,正如您在评论中提到的那样,“/ home”实际上可能是几种不同路径中的一种。在这种情况下,解决方案变得更加棘手。我在下面所做的是编写一个查询,该查询使用'['字符的第一个位置获取密钥的子字符串,直到找到','字符。
SELECT
REPLACE(
[item_name],
'$1',
SUBSTRING(
[item_key],
CHARINDEX(
'[',
[item_key]
) + 1,
CHARINDEX(
',',
[item_key],
CHARINDEX(
'[', [item_key]
)
) - CHARINDEX(
'[', [item_key]
) - 1
)
)
FROM [table_name]