别名中的方括号问题
Issue with square brackets in alias
在我的应用程序中,我在运行时生成一个查询。
我检索了具有如下值的字段列表 ("select fieldvalue as fielddescription"):
select
152 as [weight],
25 as [length] -- this query text is generated at runtime
我的问题来自字段描述,即用户定义的。在上面的示例中,用户将字段命名为 "weight",但一种选择是将其命名为 "weight [kg]"(在应用程序中,用户可以根据自己的喜好重命名该字段,并且用户可以选择方括号) .
在这种情况下,我的查询变为:
select
152 as [weight [kg]],
25 as [length]
在这种情况下,“[重量[kg]],25 as [长度]”成为字段别名。
我通过放置双闭括号找到了解决方法:当我生成它们查询时,我将所有“] 替换为”]]”,在这种情况下,我的查询变为:
select
152 as [weight [kg]]], --notice "]]]" = "]]" (substituted) + "]" (closing one)
25 as [length]
这给出了正确的结果。
事实上,在我的实现中,我附加到 select 值,然后我添加 '[' + FIELD_DESCRIPTION + ']' 所以这就是我对方括号有疑问的原因。
如果我使用引号 (select 152 as "weight [kg]"
) 而不是方括号,我会在字段描述中遇到引号问题;因为我不想更改使用方括号的实现,所以我不认为引号是解决方案。
我的问题是:在我的情况下,将“]”替换为“]]”是否安全?您看到更智能、更安全的解决方案了吗?
经过一些试验,我发现该解决方案适合我的情况。
因此,在以编程方式创建字段别名时,我成功地将“]”替换为“]]”,这样我就无需更改实现。
在我的应用程序中,我在运行时生成一个查询。
我检索了具有如下值的字段列表 ("select fieldvalue as fielddescription"):
select
152 as [weight],
25 as [length] -- this query text is generated at runtime
我的问题来自字段描述,即用户定义的。在上面的示例中,用户将字段命名为 "weight",但一种选择是将其命名为 "weight [kg]"(在应用程序中,用户可以根据自己的喜好重命名该字段,并且用户可以选择方括号) .
在这种情况下,我的查询变为:
select
152 as [weight [kg]],
25 as [length]
在这种情况下,“[重量[kg]],25 as [长度]”成为字段别名。 我通过放置双闭括号找到了解决方法:当我生成它们查询时,我将所有“] 替换为”]]”,在这种情况下,我的查询变为:
select
152 as [weight [kg]]], --notice "]]]" = "]]" (substituted) + "]" (closing one)
25 as [length]
这给出了正确的结果。
事实上,在我的实现中,我附加到 select 值,然后我添加 '[' + FIELD_DESCRIPTION + ']' 所以这就是我对方括号有疑问的原因。
如果我使用引号 (select 152 as "weight [kg]"
) 而不是方括号,我会在字段描述中遇到引号问题;因为我不想更改使用方括号的实现,所以我不认为引号是解决方案。
我的问题是:在我的情况下,将“]”替换为“]]”是否安全?您看到更智能、更安全的解决方案了吗?
经过一些试验,我发现该解决方案适合我的情况。
因此,在以编程方式创建字段别名时,我成功地将“]”替换为“]]”,这样我就无需更改实现。