簡體   English   中英

如何為動態數據透視表選擇具有特殊字符的列名-SQL Server

[英]How to select column name with special character for dynamic pivot - SQL Server

我在從SQL表中選擇列名中帶有“ <”的列時遇到問題。

這是用於SQL Server Management Server 2012。

當我使用以下代碼選擇列時,將獲得列列表。 列之一中有一個特殊字符“ <”。 該列的值為“ <2004”。

select NAME
from sys.columns
where object_id=OBJECT_ID('[table_name]')
and (NAME LIKE '2%' or NAME LIKE '< 2%')

表中的列

但是,當我將此代碼用於動態樞軸時,它給我一個錯誤,提示:

消息207,第16級,州1,第7行

無效的列名“ <2004”。

編輯:添加錯誤的圖像: 錯誤

動態數據透視的代碼:

DECLARE @Columns varchar(max)
SELECT @Columns =STUFF((
SELECT ',' + QUOTENAME(NAME)
FROM
(select NAME
from sys.columns
where object_id=OBJECT_ID('[table_name]')
and (NAME LIKE '2%' or NAME LIKE '< 2%') L
FOR XML PATH ('')),1,1,'')

我想看到一個輸出,其中動態樞軸也選擇其中帶有“ <”的列。 如果我在不添加條件“ <”(或名稱類似“ <2%”)的情況下嘗試代碼,則它可以完美運行。

非常感謝您提供任何幫助。

聲明@Columns varchar(max)=''

從sys.columns中選擇@Columns + =','+ QUOTENAME(NAME),其中object_id = OBJECT_ID('[Table_Name]')和(NAME LIKE'2%'或NAME LIKE'<2%')

SET @ Columns = STUFF(@ Columns,1,1,'')

選擇@Columns

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM