Вы можете попробовать использовать левое соединение
select * from students a left join marks b
on a.studentid=b.studentid
. для / l
- ваш друг:
for /l %x in (1, 1, 100) do echo %x
Начинается с 1, шаг за шагом и заканчивается на 100.
Используйте два %
, если они находятся в пакетном файле
for /l %%x in (1, 1, 100) do echo %%x
(это одна из вещей, которые я действительно ненавижу в сценариях Windows)
Если у вас есть несколько команд для каждой итерации цикла, сделайте следующее:
for /l %x in (1, 1, 100) do (
echo %x
copy %x.txt z:\whatever\etc
)
или в пакетном файле
for /l %%x in (1, 1, 100) do (
echo %%x
copy %%x.txt z:\whatever\etc
)
Ключ:
/ l
означает, что команда for
будет работать численно, а не работать с набором файлов
% x
- это переменная цикла
{{1} } (начальное значение, приращение значения, конечное условие [включительно])
Используйте seq in for loop
for i in `seq 1 100`
do
echo $i
done
DOS не предлагает очень элегантных механизмов для этого, но я думаю, что вы все равно можете запрограммировать цикл для 100 или 200 итераций с разумными усилиями. Хотя числового для
цикла нет, вы можете использовать символьную строку в качестве «переменной цикла».
Закодируйте цикл, используя GOTO, и для каждой итерации используйте SET X =% X% @
, чтобы добавить еще один знак @
к переменной окружения X; и для выхода из цикла сравните значение X со строкой из 100 (или 200) @
знаков.
Я никогда не говорил, что это элегантно, но это должно сработать!