gpt4 book ai didi

sql-server - SQL Server 中是否有类似预处理器指令的东西,特别是像 #DEFINE 之类的东西?

转载 作者:行者123 更新时间:2023-12-02 03:12:54 24 4
gpt4 key购买 nike

每当我的 SELECT 中有复杂的字段时,我的 GROUP BY 最终看起来就像一场垃圾火灾,因为 GROUP BY 看不到我的SELECT 中定义的别名。但如果有像 #DEFINE 这样的东西,那么我可以通过宏来解决这个问题。

有类似的事情吗?

最佳答案

是的,它的名字是SQLCMD Mode :

:setvar <var> <value>

:SETVAR DATABASENAME "adventureworks2014"
USE $(DATABASENAME);

:setvar col_list "col1,col2,col3"
SELECT $(col_list), COUNT(*) AS cnt
FROM tab
GROUP BY $(col_list);

编辑:

我认为正确的方法是使用 CROSS APPLY :

SELECT s.col1, s.col2, COUNT(*) AS cnt
FROM t
CROSS APPLY (SELECT col1 = complex_expression, col2 = complex_expression2) AS s
-- the expression is defined once at the same level
GROUP BY s.col1, s.col2;

关于sql-server - SQL Server 中是否有类似预处理器指令的东西,特别是像 #DEFINE 之类的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57101236/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com