在Vertica中创建变量

时间:2013-06-10 23:58:37

标签: sql ssms vertica

我正在从SQL Server过渡到Vertica。有没有类似的方法来创建变量?

通常我会这样做:

Define @myVariable int
Set @myVariable = select MAX(Field1) from myTable

4 个答案:

答案 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

以上startend是变量。运行查询时,会打开一个对话框,提示您输入startend的值。