在我的應用程序中,我在運行時生成一個查詢。問題與方括號中的別名
我檢索領域,像這樣值的列表(「選擇fieldValue方法爲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]
在這種情況下 「[重量[公斤],25爲[長度]」 變爲字段別名。 我發現了一個解決方法通過把雙封括號:當我產生他們詢問我全部替換「]與‘]’,在這種情況下,我的查詢變爲:
select
152 as [weight [kg]]], --notice "]]]" = "]]" (substituted) + "]" (closing one)
25 as [length]
,這給正確的結果
其實我在執行我附加到選擇的值,然後我加上「[」 + FIELD_DESCRIPTION +「]」所以這就是爲什麼我與方括號的問題。
如果不是方括號我用引號(select 152 as "weight [kg]"
)我會在字段描述中引用問題;因爲我不想更改im使用方括號的情況下,我不認爲報價是解決方案。
我的問題是:在我的情況下用「]]替換」]「是否安全?你看到更智能,更安全的解決方案嗎?
你有**在SQL級別應用這種重命名嗎?是不可能用'column0','column1'等生成一個通用的結果集,然後在應用程序/報告生成器中執行自定義命名/無論這個結果集是否消耗* –
@TT。 QUOTENAME將解決價值部分的問題,但在我的情況下,問題是在別名中,我不能在別名中使用QUOTENAME – LaBracca
@Damien_The_Unbeliever您的方法是一種可行的方法,但我的實現已經完成並且非常複雜,所以我想解決這個問題:一切正常,除非字段在其定義中沒有方括號,所以爲了避免重寫所有我問這個問題。 – LaBracca