Псевдослучайная последовательность в SQL Server

| рубрика: Программирование | автор: st
Метки:

Использование встроенной функции rand() в запросах чревато проблемой получения последовательности одинаковых чисел. Например

CREATE TABLE T1 (id int);
GO

INSERT INTO T1
SELECT 1
UNION
SELECT 2
UNION
SELECT 3;

SELECT rand(), id FROM T1;

Выдает одинаковые значения

rand_value             id
---------------------- -----------
0,581556027773794      1
0,581556027773794      2
0,581556027773794      3

(3 …

Пронумеровать записи. Пример для MSSQL 2005

| рубрика: Программирование | автор: st
Метки:

Как пронумеровать записи в таблице в одном ее поле по порядку следования другого поля. Пример для MSSQL 2005.

Пример с использованием документированных функций, нумерация в заданном порядке.

UPDATE table1
SET field1 = T2.rownum
FROM table1 T1 INNER JOIN
    (SELECT ROW_NUMBER() OVER (ORDER BY field2 ASC) AS rownum, field2
        FROM table1 …

Типы соединений в SQL. Шпаргалка

| рубрика: Программирование | автор: st
Метки: ,

Сергей Тарасов, апрель 2006.

Заметка также опубликована в журнале "Мир ПК" №12-2007. Материал этой заметки послужил основой для одной глав книги "СУБД для программиста. Базы данных изнутри".

Лучше один раз увидеть, чем 100 раз услышать. Для чего служат различные виды соединений таблиц в SQL-запросах проще всего запомнить на практике.

В …