【发布时间】:2017-11-10 09:51:45
【问题描述】:
创建sql函数(列类型X)
嗨 我有这张桌子:
autoID | id | name | age | Tel
------------------------------------------
1 | 1 | Frank | 40 | null
2 | 1 | null | 50 | 7834xx
3 | 1 | Alex | null | null
4 | 1 | null | 20 | null
5 | 2 | James | null | 4100xx
6 | 3 | jan | 24 | null
7 | 3 | null | null | 4100xx
我对 select 的查询:
SELECT TOP 10
(SELECT top(1) name FROM test1 where id=1 and name is not null order by autoID desc) as name ,(SELECT top(1) age FROM test1 where id=1 and age is not null order by autoID desc) as Age ,(SELECT top(1) Tel
FROM test1
where id=1 and Tel
autoID desc 不是 null 顺序)作为 Telephon FROM [dbo].[test1] group by id
结果:
autoID | id | name | age | Tel
------------------------------------------
1 | 1 | Alex | 20 | 7834xx
我需要这样的创建函数:
CREATE FUNCTION TestSchema.MyfunctinX(@ColumnX @ColumnX.type)
RETURNS @ColumnX.type
AS
BEGIN
DECLARE @value @ColumnX.type
SELECT top 1 @value from @ColumnX where @value is not null order by @autoID desc
RETURN @value
END;
GO
对于我的选择查询,得到 Short like:
Select Id, MyfunctinX(name) as [Name], MyfunctinX(age) as Age, MyfunctinX(Tel)
as Tel from yourtable Group by Id
有没有办法做到这一点?
【问题讨论】:
标签: sql function tsql stored-procedures