Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 создание произвольной строки  [new]
KAM_MAM
Member

Откуда:
Сообщений: 5
Всем ДД
Ребята не подскажите каким образом я могу создать произвольную строку от x до y символов, все символы должны быть в англ языке. Пробовал командой Unicode, но там не всегда получается попасть именно в английские символы. Подскажите пожалуйста, как реализовать это.
17 окт 14, 05:36    [16717778]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
aleks2
Guest
1. Создать табличку из "символов в англ языке". Всего то 24 символа.
2. Выбирать символы из нее.
17 окт 14, 06:08    [16717789]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
KAM_MAM
Member

Откуда:
Сообщений: 5
Мне просто такое дело нужно сделать внутри селекта, т.е. при вставки данных из нескольких таблиц в одну временную
17 окт 14, 07:09    [16717830]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
Jaffar
Member

Откуда:
Сообщений: 633
KAM_MAM,


сделай табличку и функцию скалярную
в функции используя рандом генери число от N до M. и потом так же можешь произвольно выбрать M-N+1 разных букв и составить из них строчки.
17 окт 14, 08:25    [16717956]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
Merdoc
Member

Откуда: Новосибирск
Сообщений: 103
KAM_MAM
Мне просто такое дело нужно сделать внутри селекта, т.е. при вставки данных из нескольких таблиц в одну временную

Так может GUID или обычный идентификатор? Зачем заморачиваться с английскими символами?
17 окт 14, 08:37    [16717995]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
KAM_MAM
Member

Откуда:
Сообщений: 5
спасибо Jaffar, сейчас так попробую
17 окт 14, 08:53    [16718048]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
KAM_MAM
Member

Откуда:
Сообщений: 5
Merdoc, мне просто необходимо использовать именно английские символы, причем что-бы количество символов было между опреденными значениями
17 окт 14, 08:54    [16718054]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
IF OBJECT_ID('dbo.vGUID') IS NOT NULL drop view dbo.vGUID
GO
create view dbo.vGUID
as
	select newid() as r;
GO
IF OBJECT_ID('dbo.RandString') IS NOT NULL drop function dbo.RandString
GO
create function dbo.RandString (@x int,@y int)
returns varchar(100)
as
begin
return(SELECT ''+ CHAR(c.NC)  FROM 
(select top 1 number  as N from master..spt_values 
 cross apply dbo.vGUID g
 where type = 'p'  and number between @x  AND @y 
 ORDER BY ROW_NUMBER()OVER(ORDER BY g.R)) N
join 
(select number  as NC, ROW_NUMBER()OVER(ORDER BY g.R)  AS N
from master..spt_values 
 cross apply dbo.vGUID g
where type = 'p'  and ((number between 65  AND 90) OR (number between 97  AND 122)))C
ON C.N <= N.N
FOR XML PATH('')) 
end
GO

declare @Mytable table  (id int)
insert into @Mytable(id) values(1),(2),(3),(4),(5)
declare @x int =5 ,  @y int =10

SELECT t.id,dbo.RandString(@x,@y)
FROM @Mytable t
17 окт 14, 08:56    [16718061]     Ответить | Цитировать Сообщить модератору
 Re: создание произвольной строки  [new]
KAM_MAM
Member

Откуда:
Сообщений: 5
LexusR, спасибо попробую
17 окт 14, 11:12    [16718874]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить