2015-03-28 7 views
0

Я хочу сгенерировать случайный идентификатор, который использует имя таблицы и фамилию и случайное число в конце входа. Я не могу понять, как использовать функцию RAND, чтобы добавить одно случайное число в конце имени. Пожалуйста, помогите мне. Это будет оценено. БлагодаряГенерировать случайный идентификатор с помощью курсора в SQL Server

DECLARE CUSTOMER_ID_CURSOR CURSOR 
STATIC 
FOR 
SELECT [first_name]+[last_name] as [ADMINISTRATOR ID] from administrators ; 
OPEN CUSTOMER_ID_CURSOR; 
FETCH NEXT FROM CUSTOMER_ID_CURSOR; 
WHILE @@FETCH_STATUS=0 
FETCH NEXT FROM CUSTOMER_ID_CURSOR; 
CLOSE CUSTOMER_ID_CURSOR 
DEALLOCATE CUSTOMER_ID_CURSOR 
+4

Почему этот тег: MySQL, SQL Server и T-SQL? – ElGavilan

+0

Вы посмотрели: http://stackoverflow.com/questions/1045138/how-do-i-generate-random-number-for-each-row-in-a-tsql-select – Ako

ответ

1

Функция RAND() не подходит для ваших целей, как это всегда производит такое же количество в пакете, если каждая строка получает новое семя. Используйте следующее:

SELECT [first_name]+[last_name] + 
    CAST(CAST(RAND(CHECKSUM(NEWID())) * 10 as INT) AS CHAR(1)) 
    as [ADMINISTRATOR ID] from administrators ; 

как ваш ВЫБЕРИТЕ. Он использует NEWID() для создания UNIQUEIDENTIFIER для каждой строки, которая используется как семя для функции RAND(). Остальная часть выражения получает целое число от 1 до 10, а CAST - как CHAR (1), прежде чем добавлять его в свою строку.

0

вы можете достичь своей цели, используя нижний запрос.

SELECT [first_name]+[last_name] 
+cast (ROW_NUMBER() over(order by first_name) as varchar(100))as [ADMINISTRATOR ID] 
from administrators ; 
+0

OP ищет * одно случайное число * в конце –

+0

Сколько случайных чисел вы хотели бы создать в конце имени. – user3864233

Смежные вопросы