Самое легкое должно было бы получить второе значение от этого набора результатов в приложении:
SELECT DISTINCT value FROM Table ORDER BY value DESC LIMIT 2
, Но если необходимо выбрать второе значение с помощью SQL, как насчет:
SELECT MIN(value) FROM (SELECT DISTINCT value FROM Table ORDER BY value DESC LIMIT 2) AS t
Есть $ RANDOM. Я точно не знаю, как это работает. Но это работает. Для тестирования вы можете сделать:
echo $RANDOM
Попробуйте это из своей оболочки:
$ od -A n -t d -N 1 /dev/urandom
Здесь -td
указывает, что выходной формат должен быть десятичным со знаком; -N 1
говорит читать один байт из / dev / urandom
.
См. $ RANDOM
:
$ RANDOM
- это внутренняя функция Bash. (не константа), которая возвращает псевдослучайное целое число в диапазоне 0 - 32767. Его не следует использовать для сгенерируйте ключ шифрования.
вы также можете получить случайное число из awk
awk 'BEGIN {
# seed
srand()
for (i=1;i<=1000;i++){
print int(1 + rand() * 100)
}
}'
Используйте $ RANDOM
. Это часто полезно в сочетании с простой арифметикой оболочки. Например, для генерации случайного числа от 1 до 10:
$ echo $((1 + RANDOM % 10))
3
Фактический генератор находится в variables.c
, функция brand ()
. Старые версии представляли собой простой линейный генератор. Версия 4.0 bash
использует генератор со ссылкой на статью 1985 года, что, по-видимому, означает, что это достойный источник псевдослучайных чисел. Я бы не стал использовать его для моделирования (и, конечно, не для криптографии), но он, вероятно, подходит для базовых задач написания сценариев.
Если вы делаете что-то, что требует серьезных случайных чисел, вы можете использовать / dev / random
или / dev / urandom
, если они доступны:
$ dd if=/dev/urandom count=4 bs=1 | od -t d
Если вы используете систему Linux, вы можете получить случайное число из / dev / random или / dev / urandom. Будьте осторожны, / dev / random будет блокироваться, если доступно недостаточно случайных чисел. Если вам нужна скорость, а не случайность, используйте / dev / urandom.
Эти «файлы» будут заполнены случайными числами, сгенерированными операционной системой. Получение истинных или псевдослучайных чисел зависит от реализации / dev / random в вашей системе. Истинные случайные числа генерируются с помощью шума, собираемого драйверами устройств, такими как мышь, жесткий диск, сеть.
Вы можете получить случайные числа из файла с помощью dd