34,837
社区成员




;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊 [/quote]
我明白,这个就得看你具体的情况了,现在你举得例子只有xyz,其实xyz有几十万个,也是一样处理的,最多来个动态语句就行。
只要你有v列的定义就有办法
[/quote] V列的值 只有四个,是固定的 。现在就是要计算出xyz的近似值就好了
[/quote]
那v列的定义是固定的吗[/quote]是的 固定的 ,,[/quote]
那就把v列的定义,按照+号,先分拆成具体的定义,比如:v1 = x+y+z ,那么按照+分拆,就是:
x y z
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊 [/quote]
我明白,这个就得看你具体的情况了,现在你举得例子只有xyz,其实xyz有几十万个,也是一样处理的,最多来个动态语句就行。
只要你有v列的定义就有办法
[/quote] V列的值 只有四个,是固定的 。现在就是要计算出xyz的近似值就好了
[/quote]
那v列的定义是固定的吗[/quote]是的 固定的 ,,
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊 [/quote]
我明白,这个就得看你具体的情况了,现在你举得例子只有xyz,其实xyz有几十万个,也是一样处理的,最多来个动态语句就行。
只要你有v列的定义就有办法
[/quote] V列的值 只有四个,是固定的 。现在就是要计算出xyz的近似值就好了
[/quote]
那v列的定义是固定的吗
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊 [/quote]
我明白,这个就得看你具体的情况了,现在你举得例子只有xyz,其实xyz有几十万个,也是一样处理的,最多来个动态语句就行。
只要你有v列的定义就有办法
[/quote] V列的值 只有四个,是固定的 。现在就是要计算出xyz的近似值就好了
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊 [/quote]
我明白,这个就得看你具体的情况了,现在你举得例子只有xyz,其实xyz有几十万个,也是一样处理的,最多来个动态语句就行。
只要你有v列的定义就有办法
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
;with tb(v1,v2,v3,v4)
as
(
select 14,9,8,11 union all
select 21,12,19,11
)
select x = v1-v4,
y = v1-v3,
z = v1-v2
from tb
/*
x y z
3 6 5
10 2 9
*/
[/quote]
这样算出来的值, 我永远只有4个, 但是 X,Y,Z的元素却是有几十万个啊 [/quote]
我明白,这个就得看你具体的情况了,现在你举得例子只有xyz,其实xyz有几十万个,也是一样处理的,最多来个动态语句就行。
只要你有v列的定义就有办法
[/quote] V列的值 只有四个,是固定的 。现在就是要计算出xyz的近似值就好了
[/quote]
那v列的定义是固定的吗[/quote]是的 固定的 ,,[/quote]
那就把v列的定义,按照+号,先分拆成具体的定义,比如:v1 = x+y+z ,那么按照+分拆,就是:
x y z[/quote]
这个可以做到 ,但是怎么求XYZ ?