Используйте sql для выбора данных, затем вставьте строку только в первую позицию набора результатов (не обновляйте базу данных) - PullRequest
0 голосов
/ 22 ноября 2011

Если я выберу столбец в таблице, скажем, 10 строк, могу ли я использовать SQL для вставки строки «пожалуйста, выберите» в первую позицию, используя только SQL? Я хочу вставить его только в набор результатов, а не в базу данных.

Ответы [ 3 ]

7 голосов
/ 22 ноября 2011

Сначала вы должны знать, что это плохая идея .

Вы путаете ваш уровень представления и уровень базы данных. Принуждение SQL к таким вещам, как вывод сообщений о состоянии или обратная связь с пользователями, является антипаттерном, которого следует избегать.

При этом, если столбец имеет строковый тип (char, varchar и т. Д.), Вы можете сделать что-то вроде:

SELECT 'Please Select'
UNION ALL
SELECT TOP 10 Varcharfield
FROM Mytable

Если это числовое значение, то нет, если вы не приведете его к строковому типу.

1 голос
/ 22 ноября 2011

Вот кое-что, что вы можете попробовать:

SELECT u.YourVarcharColumnName
FROM (
    SELECT 1 AS rID, 'Please select' AS YourVarcharColumnName
    UNION
    SELECT 2 AS rID, YourVarcharColumnName
    FROM YourTableName
) u
ORDER BY u.rID;

Я поместил rID на место и отсортировал его как крайний случай, когда намеченный первый набор строк не выходит сверху ...

Однако вы должны помнить, что YourVarcharColumnName должна быть (как говорится) строкой.Вам придется преобразовать его в строку, если это не строковый столбец.

Как упомянул @JNK .. Я подумал, что мне следует также отредактировать свой пост:

Пожалуйста, попробуйте:

    SELECT 'Please select' AS YourVarcharColumnName
    UNION
    SELECT YourVarcharColumnName
    FROM YourTableName

Что похоже на то, что опубликовали другие.Если вы когда-либо сталкивались с тем, что мне не повезло, и «Пожалуйста, выберите» не вышло на первое место, пожалуйста, обратитесь к запросу, который я разместил вверху. Спасибо!

0 голосов
/ 22 ноября 2011
SELECT '(Please select)'
UNION
SELECT ColumnName FROM TableName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...