QUOTENAME 函数的反面是什么?

2021-09-10 00:00:00 tsql sql-server

在 SQL Server 中有一个内置函数,它为您引用一个标识符,称为 引用名.是否有相反的功能并再次删除引号?

In SQL Server there is a built in function that quotes an identifier for you called QUOTENAME. Is there a function that does the opposite and removes the quotes again?

换句话说,在下面的代码示例中,我应该用什么替换 SOMEFUNCTION 以使其为我可以将 @name 初始化为的任何值返回 1?

In other words what do I replace SOMEFUNCTION with in the following code example to get it to return 1 for any value I could initialize @name to?

declare @name nvarchar(50) = 'hello]'

select 
    case 
        when SOMEFUNCTION(QUOTENAME(@name)) = @name then 1
        else 0
    end

推荐答案

使用 PARSENAME:

declare @name sysname = quotename('foo]');
print @name;
set @name = parsename(@name, 1);
print @name;


[foo]]]
foo]

相关文章