sql中的几个函数

right('1234',2)//34 从右边起取两位

left('1234',2)//12 从左边起取两位

stuff('abc',1,2,'d')//dc  从第一位起,删除2个,再添加d

NULLIF ( expression , expression )//如果两个表达式不相等,NULLIF 返回第一个 expression 的值。如果相等,NULLIF 返回第一个 expression 类型的空值。

COALESCE()//返回其参数中的第一个非空表达式

1.
DECLARE @T TABLE
(
  tid INT
)
INSERT INTO @T
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4

DECLARE @sql VARCHAR(50)
SET @sql=''
SELECT @sql=@sql+','+CAST(tid AS VARCHAR(4)) FROM @T

PRINT right(@sql,LEN(@sql)-1)

//执行结果

(4 行受影响)
1,2,3,4

 

2.

DECLARE @T TABLE
(
  tid INT
)
INSERT INTO @T
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4

DECLARE @sql VARCHAR(50)
SET @sql=''
SELECT @sql=@sql+','+CAST(tid AS VARCHAR(4)) FROM @T
select stuff(@sql,1,1,'')

 //执行结果

无列名

  无列名
1

1,2,3,4

3.

CREATE TABLE budgets
(
   dept            tinyint   IDENTITY,
   current_year      decimal   NULL,
   previous_year   decimal   NULL
)
INSERT budgets VALUES(100000, 150000)
INSERT budgets VALUES(NULL, 300000)
INSERT budgets VALUES(0, 100000)
INSERT budgets VALUES(NULL, 150000)
INSERT budgets VALUES(300000, 250000)
insert budgets values(null,0)
GO 
SET NOCOUNT OFF
SELECT avg(NULLIF(COALESCE(current_year,previous_year), 0.00)) AS 'Average Budget' FROM budgets

 

Average Budget                          
----------------------------------------
212500.000000

posted @ 2012-04-12 17:17  blncle  阅读(181)  评论(0编辑  收藏  举报