Я предполагаю, что это связано с SQL-сервером ...
Ваша проблема в том, что таблица SQL-сервера не имеет какого-либо неявного порядка сортировки. Простой SELECT * FROM SomeWhere
может вернуться в порядке сортировки, в который вы вставили свои данные, но также может вернуть и совсем другое. Единственный шанс обеспечить порядок сортировки - это ORDER BY
в самом внешнем запросе к (набору) уникальных столбцов.
Вы можете создать порядок сортировки путем анализа ваших данных:
Это макетная таблица с вашими тестовыми данными:
DECLARE @mockup TABLE(YourColumn VARCHAR(100));
INSERT INTO @mockup VALUES
('FR123456')
,('24/02/1988')
,('500');
- Запрос проверит значения, могут ли они быть преобразованы в число, в дату или нет.
- Это будет использоваться для размещения порядка сортировки значений.
- Я использую 105
в CONVERT
, чтобы применить формат даты dd-MM-гггг
SELECT CASE WHEN TRY_CONVERT(DATE,YourColumn,105) IS NOT NULL THEN 2
ELSE CASE WHEN TRY_CAST(YourColumn AS INT) IS NOT NULL THEN 3 ELSE 1
END
END AS SortOrder
,YourColumn
FROM @mockup
ORDER BY SortOrder;
Но если в вашей таблице несколько триплетов, а не один, как в Ваш образец, я боюсь, что вы потерялись ...
Кстати: ваш собственный подход пытается сделать то же самое:
SELECT row_number() OVER (order by splitdata desc)as Id
Это создаст вид номера порядка сортировки , но он будет случайным (появится количество до или после даты, в зависимости от буквенно-цифровых правил).
Добавьте столбец IDENTITY
в вашу таблицу. Это будет использовать возрастающее число для любой строки в момент ее создания. Эти значения могут быть использованы для обеспечения порядка , как вставлено (с помощью ORDER BY
с этим столбцом).
SELECT [1], [2] , [3]
FROM
(SELECT CASE WHEN TRY_CONVERT(DATE,splitdata,105) IS NOT NULL THEN 2
ELSE CASE WHEN TRY_CAST(splitdata AS INT) IS NOT NULL THEN 3 ELSE 1
END
END AS Id , splitdata
from @mockup ) AS SourceTable
PIVOT
(
MIN (splitdata)
FOR id IN ([1], [2], [3])
) AS PivotTable;
Насколько я понимаю, Визуальный веб-разработчик (VWD) является просто бесплатной версией компонентов Visual Studio, необходимых для разработки веб-решений.
Вот список функций, отсутствующих в VWD, что Вы входите в Профессиональный выпуск Visual Studio 2008 (VS2008). Короче говоря, VWD Express 2005
не Extensibile с другими дополнениями или сторонними инструментами
Только проекты веб-сайта поддержек (2005). Вы не можете добавить проект Библиотеки классов или проект Библиотеки Веб-элементов управления к решению.
ОБНОВЛЕННЫЙ - VWD 2008 SP1 также позволяет веб-приложение и Проекты Библиотеки классов в решении.
Испытывает недостаток в способности объединить Управление исходным кодом
не имеет никакого средства проверки Доступности
Испытывает недостаток в способности к автоматической генерации ресурсов для локализации
Не может присоединить отладчик к процессу
не имеет никакой отладки Собственного кода
Очевидное преимущество VWD по VS2008 состоит в том, что это свободно и если можно работать умные с ним, учитывая недостающие возможности, это может быть более прагматическая опция для Вас. Если это - функции, без которых Вы не можете жить, VS2008 может быть мудрыми инвестициями - Вы также получаете все функции, отсутствующие в других продуктах Экспресса (Visual Basic 2008, Визуальный 2008 C#, и т.д.).
Смотрите на сравнительную таблицу MSDN для Visual Studio 2005. Я не могу найти 2008, но подозревал бы, что это очень похоже.
Visual Studio позволит Вам integerate с Управлением исходным кодом и присоединенной отладкой к процессам IIS.
Как одинокий разработчик, поднимающий некоторое чистое приложение ASP.NET-MVC затем, которое Веб-разработчик сделал бы для серьезной работы, Вам действительно нужна студия.
Я думаю, что Вы также испытываете недостаток в способности опубликовать сайт без Visual Studio, можно, конечно, выполнить веб-сайт, но это не создаст двоичные файлы для выпуска с веб-разработчиком, необходимо опубликовать источник к iis.