我正在使用UNPIVOT
運算符,並且正在返回不需要的數據類型。查詢返回未轉發數據的nvarchar數據類型。當我加入一個varchar數據類型的表時,我得到一個隱式類型轉換。下面是一個將會產生這些結果的例子。UNPIVOT返回數據類型
有沒有辦法控制UNPIVOT
返回的輸出數據類型?我想有UNPIVOT
返回varchar數據類型。
CREATE TABLE #Data
(
Facility varchar(10) NOT NULL,
Dt datetime NOT NULL,
VolumeType1 int NOT NULL,
VolumeType2 int NOT NULL,
VolumeType3 int NOT NULL
);
CREATE TABLE #Map
(
Facility varchar(10) NOT NULL,
Department varchar(15) NOT NULL,
VolumeType varchar(15) NOT NULL
)
INSERT INTO #Data VALUES
('Building1', '08/01/2016', 2500, 2500, 30),
('Building1', '08/02/2016', 3000, 3000, 35),
('Building2', '08/01/2016', 2500, 2500, 30),
('Building2', '08/02/2016', 3000, 3000, 35)
INSERT INTO #Map VALUES
('Building1', 'Department1', 'VolumeType1'),
('Building1', 'Department2', 'VolumeType2'),
('Building2', 'Department3', 'VolumeType1')
SELECT
*
FROM
#Data
UNPIVOT
(
Volume FOR VolumeType IN (VolumeType1, VolumeType2, VolumeType3)
) AS UNP
JOIN #Map
ON UNP.Facility = #Map.Facility
AND UNP.VolumeType = #Map.VolumeType
我在2008年執行了這個,但沒有看到任何錯誤 – techspider
它沒有錯誤。如果您查看查詢計劃,您將看到隱式類型轉換。這正是我想要避免的。 –
你可以更好地用你所看到的更新你的問題! – techspider