数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQLServer建立交叉表查询


发布日期:2020年02月25日
 
SQLServer建立交叉表查询

/*
使用方法直接执行传入参数(series_guid 查询条件)返回一个数据集

查询该系列Cylindrical下所有产品
dboP_GetSeriesProductDetail Cylindrical
查询系列Cylindrical下含有BK的产品
dboP_GetSeriesProductDetail Cylindricalproduct_name like %BK%
*/
CREATE PROCEDURE P_GetSeriesProductDetail(@series_guid varchar() @condition varchar())
AS
DECLARE @ParamNo nvarchar()
DECLARE @SQL nvarchar()
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 = )
BEGIN
Set @SQL = @SQL + MAX(CASE param_no WHEN + @ParamNo + THEN param_value ELSE END) AS F + @ParamNo + char()
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

上一篇:MySQL在有索引列情况下select *的输出结果顺序

下一篇:解决MSSQL 2008不能用IP登录的