一个关于SQL的字符串的问题
CREATE TABLE T
(
工厂名称 VARCHAR(20),
产品号 VARCHAR(20),
数量 INT,
日期 DATETIME
)
INSERT INTO T
SELECT 'a','6800',51,'2007-5-14' UNION ALL
SELECT 'b','6800',52,'2007-5-14' UNION ALL
SELECT 'a','1920',53,'2007-5-14' UNION ALL
SELECT 'a','6800',54,'2007-5-15' UNION ALL
SELECT 'a','1920',54,'2007-5-15' UNION ALL
SELECT 'b','6800',54,'2007-5-15'
GO
select * from T
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT 日期=CASE WHEN GROUPING(日期) =1 THEN ''合计'' ELSE 日期 END'
SELECT @sql = @sql + ',['+产品号+'-'+工厂名称+']=ISNULL(SUM(CASE WHEN 工厂名称 = '''+工厂名称+''' AND
产品号 = '''+产品号+''' THEN 数量 END),0)'
FROM
( SELECT 产品号 FROM T GROUP BY 产品号 ) A, ( SELECT 工厂名称 FROM T GROUP BY 工厂名称 ) B
ORDER BY 产品号 DESC,工厂名称
EXEC( @sql + ',[合计]=SUM(数量) FROM (SELECT 工厂名称,产品号,数量,日期=CONVERT(CHAR(10),日期,120) FROM T) A GROUP BY 日期 WITH ROLLUP')
这是一个社区的专家写的一个有关工厂产品分类的SQL语句,请问这个@sql字符串变量的单引号('')到底是怎么匹配的呢?请教大家....
(
工厂名称 VARCHAR(20),
产品号 VARCHAR(20),
数量 INT,
日期 DATETIME
)
INSERT INTO T
SELECT 'a','6800',51,'2007-5-14' UNION ALL
SELECT 'b','6800',52,'2007-5-14' UNION ALL
SELECT 'a','1920',53,'2007-5-14' UNION ALL
SELECT 'a','6800',54,'2007-5-15' UNION ALL
SELECT 'a','1920',54,'2007-5-15' UNION ALL
SELECT 'b','6800',54,'2007-5-15'
GO
select * from T
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT 日期=CASE WHEN GROUPING(日期) =1 THEN ''合计'' ELSE 日期 END'
SELECT @sql = @sql + ',['+产品号+'-'+工厂名称+']=ISNULL(SUM(CASE WHEN 工厂名称 = '''+工厂名称+''' AND
产品号 = '''+产品号+''' THEN 数量 END),0)'
FROM
( SELECT 产品号 FROM T GROUP BY 产品号 ) A, ( SELECT 工厂名称 FROM T GROUP BY 工厂名称 ) B
ORDER BY 产品号 DESC,工厂名称
EXEC( @sql + ',[合计]=SUM(数量) FROM (SELECT 工厂名称,产品号,数量,日期=CONVERT(CHAR(10),日期,120) FROM T) A GROUP BY 日期 WITH ROLLUP')
这是一个社区的专家写的一个有关工厂产品分类的SQL语句,请问这个@sql字符串变量的单引号('')到底是怎么匹配的呢?请教大家....
...全文
相关推荐
在SQL中获取一个长字符串中某个字符串出现次数的实现方法
以下是对在SQL中获取一个长字符串中某个字符串出现次数的实现方法进行了详细的分析介绍,需要的朋友可以参考下
MyBatis 动态拼接Sql字符串的问题
MyBatis的动态SQL,解决了SQL字符串拼接的痛苦。下文分步骤给大家详细介绍了MyBatis 动态拼接Sql字符串的问题,非常不错,感兴趣的朋友一起看下吧
SQL语句字符串分割
SQL语句字符串分割
用SQL语句截取字符串
用SQL语句截取字符串, string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始) 参数3:截取的字符数量
Sql拆分字符串
使用sqlserver分割字符串,使用存储过程使可简化参数处理。


应用实例
