sql中的几个函数

本文演示了使用SQL进行字符串操作的技巧,包括right、left和stuff函数的应用,以及如何利用NULLIF和COALESCE处理空值和非空值。通过具体示例展示了如何动态构建SQL查询语句并计算平均预算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

转载于:https://www.cnblogs.com/blncle/archive/2012/04/12/2407728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值