萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> 數據庫綜合 >> SQLServer建立交叉表查詢的方法

SQLServer建立交叉表查詢的方法

將access數據庫中的交叉表轉到SQL server數據庫中,在SQL server中,不支持transfrom方法,查找相關資料,找到使用case方法進行轉換?我們為大家收集整理了關於SQLServer建立交叉表查詢,以方便大家參考。

/*

使用方法,直接執行,傳入參數(series_guid, 查詢條件)返回一個數據集

如:

查詢該系列Cylindrical1下所有產品

dbo.P_GetSeriesProductDetail 'Cylindrical1',''

查詢系列Cylindrical1下含有BK-1的產品

dbo.P_GetSeriesProductDetail 'Cylindrical1','product_name like ''%BK-1%'''

*/

CREATE PROCEDURE P_GetSeriesProductDetail(@series_guid varchar(40), @condition varchar(1000))

AS

DECLARE @ParamNo nvarchar(5)

DECLARE @SQL nvarchar(4000)

Set @SQL=''

DECLARE P_cursor CURSOR

local

fast_forward

FOR SELECT param_no FROM V_product_params where series_guid=@series_guid

OPEN P_cursor

FETCH next FROM P_cursor INTO @ParamNo

WHILE (@@fetch_status = 0)

BEGIN

Set @SQL = @SQL + ',MAX(CASE param_no WHEN ' + @ParamNo + ' THEN param_value ELSE '''' END) AS F' + @ParamNo + char(13)

FETCH next FROM P_cursor INTO @ParamNo

END

CLOSE P_cursor

DEALLOCATE P_cursor

Set @SQL='SELECT type_guid, series_guid, product_no, product_name' + @SQL + '

FROM V_product_params WHERE series_guid=''' + @series_guid + ''''

if (LTrim(@condition)<>'')

Set @SQL= @SQL + ' and ' + @condition

Set @SQL= @SQL + '

GROUP BY type_guid, series_guid, product_no, product_name'

Print @SQL

Execute sp_executesql @SQL

希望大家可以學會SQLServer建立交叉表查詢.想了解更多精彩內容,請關注我們的網站!

相關推薦:

SQLServer通配符和轉義字符講解 

想了解更多關於sqlserver教程,請點擊精品學習網編程開發欄目!!

copyright © 萬盛學電腦網 all rights reserved