如何访问SQL Server底层的机制

各位朋友大家好,我有这样一个问题,向大家请教,先谢谢了.
请教这样一个问题:
如何访问SQL Server底层的机制,得到当前SELECT 的表 ?
可能不好描述,详细的问题过程和背景都写在了下面,非常不好意思来打扰你,
也非常感谢你能够抽出时间来读在这篇文章,谢谢了


CREATE TABLE TEST (NAME CHAR(10),COURSE CHAR(10),GOALS INT)
INSERT  TEST VALUES('张三','语文',80)

INSERT TEST VALUES('张三','数学',86)

INSERT TEST VALUES('张三','英语',75)

INSERT TEST VALUES('李四','语文',78)

INSERT TEST VALUES('李四','政治',85)

INSERT TEST VALUES('李四','英语',78)

----------------基本样式------------------------------


张三      语文       80
张三      数学       86
张三      英语       75
李四      语文       78
李四      政治          85
李四      英语       78

SQL 语句: SELECT * FROM TEST
----------------求个人总成绩---------------------------
李四       241
张三       241

SQL 语句: SELECT NAME ,SUM(GOALS) FROM TEST GROUP BY  NAME
----------------求个人所选课程--------------------------
李四       语文      政治      英语     
张三       语文      数学      英语     

SQL 语句: SELECT NAME ,DBO.STRSUM(NAME) FROM TEST GROUP BY  NAME

CREATE FUNCTION STRSUM( @GROUPFELD   CHAR(10))
RETURNS VARCHAR(1024)
AS
BEGIN
    DECLARE @STROUT  VARCHAR(1024)
    SELECT @STROUT = ''
    SELECT @STROUT = @STROUT + COURSE + ''
    FROM TEST
    WHERE NAME = @GROUPFELD
    RETURN @STROUT
END


DROP FUNCTION STRSUM
--------------------------------------------------------------
问题是:能不能像系统提供的SUM()函数一样,在写STRSUM()函数的时候,不用在里面写
表  TEST  和字段 NAME ,并且传参数的时候就传 COURSE 呢?
我想在SQL Server应该有这样一个机制,记录了,FROM 后面的表 ,于是在SUM()的时候,系统
自己就知道是对哪个表哪个列SUM(),那么请问,我要怎么样才能访问到这个记录呢?
怎么样才能让这里的 STRSUM() 函数不在内部直接写  当前的表和列呢,从而使函数彻底的
具有任意表的共用性?

为什么系统的SUM() ,他就知道是对当前的
select的表操作呢
肯定有这么个记录select对象的机制
如果我们不利用这个机制,本身是一种浪费 是吗   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值