当前位置:  开发笔记 > 数据库 > 正文

通用SQL获取最大值,将表和列名称作为varchar

如何解决《通用SQL获取最大值,将表和列名称作为varchar》经验,为你挑选了2个好方法。

使用以下SQL很容易获取特定主键的值:来自特定表的ID:myTale:

DECLARE @v_maxID bigint;
SELECT @v_maxID = MAX(ID) FROM myTable;

我需要的是一个通用SQL代码,用于从表中获取键的最大值,其中键和表都被指定为varchar(max)类型作为参数:

DECLARE @v_maxID bigint;
-- SELECT @v_maxID = MAX(@p_ID) FROM @p_Table;

我注释掉SELECT,因为它不起作用.我试图构建一个SQL字符串,我可以执行它,但我无法将最大值恢复到我的本地变量(@v_maxID).有什么建议?



1> BC...:
DECLARE @max bigint, @sql nvarchar(max)
SET @sql = N'SELECT @max = MAX(' + @p_ID + ') FROM ' + @p_Table

EXEC sp_executesql 
    @query = @sql, 
    @params = N'@max bigint OUTPUT', 
    @max = @max OUTPUT 

PRINT @max



2> dkretz..:

用户是选择者,但我认为这是一个丑陋的想法(过度概括).并且无法优化.只需编写SQL.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有