自定义函数的有关问题,急....
有一个表yy 如下
huh bh dangqzt
111 22 运行
111 11 拆除
我现在是对huh的重复行进行合并,使之成为以下的形式
111 22,11 运行,拆除
下面是我的查询语句
自定义函数1
CREATE FUNCTION dbo.f3_str(@huh varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+CAST(bh as varchar)
FROM yy
WHERE huh=@huh
RETURN(STUFF(@re,1,1, ' '))
END
自定义函数4
CREATE FUNCTION dbo.f4_str(@huh varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+CAST(dangqzt as varchar)
FROM yy
WHERE huh=@huh
RETURN(STUFF(@re,1,1, ' '))
END
查询语句
SELECT huh, dbo.f3_str(huh) AS bh, dbo.f4_str(huh) AS dangqzt
FROM yy
GROUP BY huh
,但结果bh 和dangqzt 列均为null,这是为什么啊?
------解决方案--------------------try
CREATE FUNCTION dbo.f3_str(@huh varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+CAST(IsNull(bh, ' ') as varchar) --加入isnull判斷
FROM yy
WHERE huh=@huh
RETURN(STUFF(@re,1,1, ' '))
END
GO
--自定义函数4
CREATE FUNCTION dbo.f4_str(@huh varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re= ' '
SELECT @re=@re+ ', '+CAST(IsNull(dangqzt, ' ') as varchar) --加入isnull判斷
FROM yy
WHERE huh=@huh
RETURN(STUFF(@re,1,1, ' '))
END
GO
------解决方案--------------------看来好多sql高手都在用ie6呀,一看代码无法缩近,就知道用的是ie6.0