今天略看了一下GS HR的SP,学到了一些东西和经验。mark 一下。
1 用Print函数查看SQL语句字符串
2 CreateTable比较多 CREATE TABLE #TempConsignAPBalanceTable(
Row int IDENTITY(1,1) PRIMARY KEY,
Fiscal varchar(6),
CompanyID varchar(30), /*公司ID*/
CompanyName varchar(60), /*公司名称*/
PartnerID varchar(30), /*供应商id*/
PartnerName varchar(60), /*供应商名称*/
CSQCYE decimal(20,8) default 0 , /*期初余额*/
)
3 SELECT 语句中 CASE WHEN 的用法
1 SELECT column1, column2, CASE WHEN column3 = 1 THEN 'yes' WHEN column3 = 0 THEN 'no' else 'error' end as columnname from
2 CreateTable比较多 CREATE TABLE #TempConsignAPBalanceTable(
Row int IDENTITY(1,1) PRIMARY KEY,
Fiscal varchar(6),
CompanyID varchar(30), /*公司ID*/
CompanyName varchar(60), /*公司名称*/
PartnerID varchar(30), /*供应商id*/
PartnerName varchar(60), /*供应商名称*/
CSQCYE decimal(20,8) default 0 , /*期初余额*/
)
3 SELECT 语句中 CASE WHEN 的用法
1 SELECT column1, column2, CASE WHEN column3 = 1 THEN 'yes' WHEN column3 = 0 THEN 'no' else 'error' end as columnname from
table
2 SELECT column1, column2, CASE column3 WHEN value1 THEN 'yes' WHEN value2 THEN 'no' else 'error' end as columnname from table
2 SELECT column1, column2, CASE column3 WHEN value1 THEN 'yes' WHEN value2 THEN 'no' else 'error' end as columnname from table
第一个SQL适用于>,<,<>的条件判断,
第二个SQL用于确定value的条件判断
4 isnull ISNULL
使用指定的替换值替换 NULL。
第二个SQL用于确定value的条件判断
4 isnull ISNULL
使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )
if check_expression == null then return value = replacement_value
else check_expression != null then return check_expression
5 很多操作都是 build 一个SQL字符串,然后exec( @sql )
6 如果exec @sql,那怎样得到@sql里面的param的value?举例
ISNULL ( check_expression , replacement_value )
if check_expression == null then return value = replacement_value
else check_expression != null then return check_expression
5 很多操作都是 build 一个SQL字符串,然后exec( @sql )
6 如果exec @sql,那怎样得到@sql里面的param的value?举例
方法一:
select count(*) from tb_articles
方法二:
declare @total int
declare @rowcount int
declare @sql nvarchar(4000)
select count(*) from tb_articles
方法二:
declare @total int
declare @rowcount int
declare @sql nvarchar(4000)
select @sql = N'select @initcount = count(1) from tb_articles'
exec sp_executesql @sql,N'@initcount int output', @rowcount output
select @rowcount
select @rowcount
memo:@sql一定是nvarchar,不可以是varchar !!!