Троичный Java (непосредственный, если) оценка

Создайте таблицу чисел - ее определение может незначительно отличаться в зависимости от платформы (это для SQL Server):

CREATE TABLE Numbers(Number INT PRIMARY KEY);

INSERT Numbers 
SELECT TOP 1000 ROW_NUMBER() OVER (ORDER BY name)
FROM sys.all_columns;

Теперь этот temp также является SQL Server, но демонстрирует синтаксис соединения, который должен быть действительным по указанным вами СУБД (хотя, признаюсь, я их не использую, поэтому не могу проверить):

DECLARE @foo TABLE(value VARCHAR(32), [count] INT);

INSERT @foo SELECT 'foo', 1
UNION ALL SELECT 'bar', 3
UNION ALL SELECT 'baz', 2;

SELECT f.value, f.[count], [index] = n.Number
FROM @foo AS f, Numbers AS n
WHERE n.Number <= f.[count];

Результаты (опять же, SQL Server):

value | count | index
------+-------+------
foo   |     1 |     1
bar   |     3 |     1
bar   |     3 |     2
bar   |     3 |     3
baz   |     2 |     1
baz   |     2 |     2
27
задан Mike Pone 2 August 2013 в 18:18
поделиться

2 ответа

Поскольку вам нужна спецификация, вот она (из §15.25 Условный оператор?: , последнее предложение раздела):

Операнд невыбранное выражение не оценивается для этой конкретной оценки условного выражения.

55
ответ дан 28 November 2019 в 04:19
поделиться

Нет, не могло. Это то же самое, что:

Integer test = null;
if ( test != null ) { 
    test = test.intValue();
}
else {
    test = 0;
}
9
ответ дан 28 November 2019 в 04:19
поделиться
Другие вопросы по тегам:

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