我正在从SQL Server过渡到Vertica。有没有类似的方法来创建变量?
通常我会这样做:
Define @myVariable int
Set @myVariable = select MAX(Field1) from myTable
答案 0 :(得分:4)
我认为Vertica不允许使用变量,除非您直接使用vsql,但是vsql变量非常有限且无法达到预期效果:
-- this will work
\set a foo
\echo :a
foo
-- this is not what you expect:
\set a NOW()
\echo :a
NOW()
\set a select max(id) from s.items()
\echo :a
selectmax(id)froms.items()
有关更多信息,请参阅https://my.vertica.com/docs/6.1.x/HTML/index.htm#2732.htm
处的vertica文档答案 1 :(得分:2)
您不会像在SQL Server中“创建变量”一样在Vertica中“创建变量”。您要转换的是T-SQL脚本。
您可以在Vertica中通过创建Perl或Python或Java ...在外部数据库运行脚本或在C ++或R中编写用户定义函数<或运行 inside < / em> Vertica。
答案 2 :(得分:0)
尝试如下:
\t -- only show tuples
\set x 'your select query which returns single tuple output ;'
-- use x as below
-- parentheses are important below
select sum(measure) from myTable where myDimension = (:x) ;
答案 3 :(得分:0)
您可以在Vertica中使用:variable_name
作为用户输入变量。例如:
select date_time from table_1 where date_time between :start and :end
以上start
和end
是变量。运行查询时,会打开一个对话框,提示您输入start
和end
的值。