Почему эта “привязка” не кодирует работу как ожидалось в JavaFX?

удалить upv1.RecordID из group by пункта

SELECT 
upv1.PropertyVal as [Branch],
STUFF((select '; ' + cast(upv2.propertyval as varchar(36))
    from upa.UserProfileValue upv2 
    where upv1.RecordID = upv2.RecordID
    and upv2.PropertyID = 9
    FOR XML PATH('')), 1, 2, '') [Emails]

FROM upa.UserProfileValue upv1
    where upv1.PropertyID = 11
    and upv1.PropertyVal <> 'Missing Branch'
group by upv1.PropertyVal 
order by upv1.PropertyVal
5
задан Eddie 18 March 2009 в 13:03
поделиться

1 ответ

Для выражения неявно определяет его итеративную переменную (вот почему, Вы не должны были объявлять меня в своем втором примере). Даже если уже будет переменная с тем же именем, то для все еще создаст новый для его объема. Ваш связывать выражение связывается с ворковать переменной за пределами Вашего для цикла, не к одной внутренней части Вашей для цикла. И тот за пределами Вашего цикла не изменяется, таким образом, связанное выражение не изменится.

Пример для демонстрации этого поведения для:

var curr = 0;
var ousideCurrRef = bind curr;
println("Before 'for' loop: curr={curr}");
for (curr in [0..3])
{
    println("In 'for' loop: curr={curr} ousideCurrRef={ousideCurrRef}");
}
println("After 'for' loop: curr={curr}");

Это распечатает:

Before 'for' loop: curr=0
In 'for' loop: curr=0 ousideCurrRef=0
In 'for' loop: curr=1 ousideCurrRef=0
In 'for' loop: curr=2 ousideCurrRef=0
In 'for' loop: curr=3 ousideCurrRef=0
After 'for' loop: curr=0

Таким образом ворковать внешняя сторона для цикла не изменится при изменении переменной того же имени в для цикла.

6
ответ дан 14 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: