У меня есть таблица, в которой я хочу выбрать подмножество столбцов, но также добавить на конце вычисленный столбец на основе того, где вы находитесь в очереди. Есть следующие поля (которые уместно):Проблема с вычисляемым столбцом в SQL
ID: ИНТ, автоматическое приращение, первичный ключ answertime: Дата и время, обнуляемые
По умолчанию, когда что-то передается в очередь, его answertime является NULL. Поэтому я хочу выбрать идентификатор вещи в очереди, а также ее ранг в очереди (т. Е. Ранг 1 - это следующий элемент, который не отвечает и т. Д.). Вот что я думал:
rank - id - COUNT (ids ниже моего id, где answertime не равно null). Тем не менее, у меня проблема с синтаксисом этого запроса:
SELECT id AS outerid, COUNT(
SELECT * FROM tablename WHERE id<outerid AND answertime IS NOT NULL
)
FROM tablename
WHERE answertime IS NULL;
Теперь, очевидно, что это неправильно, потому что я довольно уверен, что Вы не можете вставлять отборный внутри агрегатной функции, также листать SELECT и COUNT не работают, поскольку вы не можете вставлять SELECT в эту точку кода (его можно использовать только в предложении WHERE).
Возможно ли это сделать только с помощью SQL или мне нужно добавить некоторую логику на конец программы?
Если это помогает, я делаю это на SQL Server 2008, хотя я сомневаюсь, что это добавит значение.
времени, чтобы дать хороший пример, но посмотреть функцию row_number. Если я правильно вас понял, я думаю, что это будет то, что вы хотите. – HLGEM