Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
KAM_MAM Member Откуда: Сообщений: 5 |
Всем ДД Ребята не подскажите каким образом я могу создать произвольную строку от x до y символов, все символы должны быть в англ языке. Пробовал командой Unicode, но там не всегда получается попасть именно в английские символы. Подскажите пожалуйста, как реализовать это. |
17 окт 14, 05:36 [16717778] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
1. Создать табличку из "символов в англ языке". Всего то 24 символа. 2. Выбирать символы из нее. |
17 окт 14, 06:08 [16717789] Ответить | Цитировать Сообщить модератору |
KAM_MAM Member Откуда: Сообщений: 5 |
Мне просто такое дело нужно сделать внутри селекта, т.е. при вставки данных из нескольких таблиц в одну временную |
17 окт 14, 07:09 [16717830] Ответить | Цитировать Сообщить модератору |
Jaffar Member Откуда: Сообщений: 633 |
KAM_MAM, сделай табличку и функцию скалярную в функции используя рандом генери число от N до M. и потом так же можешь произвольно выбрать M-N+1 разных букв и составить из них строчки. |
17 окт 14, 08:25 [16717956] Ответить | Цитировать Сообщить модератору |
Merdoc Member Откуда: Новосибирск Сообщений: 103 |
Так может GUID или обычный идентификатор? Зачем заморачиваться с английскими символами? |
||
17 окт 14, 08:37 [16717995] Ответить | Цитировать Сообщить модератору |
KAM_MAM Member Откуда: Сообщений: 5 |
спасибо Jaffar, сейчас так попробую |
17 окт 14, 08:53 [16718048] Ответить | Цитировать Сообщить модератору |
KAM_MAM Member Откуда: Сообщений: 5 |
Merdoc, мне просто необходимо использовать именно английские символы, причем что-бы количество символов было между опреденными значениями |
17 окт 14, 08:54 [16718054] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
KAM_MAM Member Откуда: Сообщений: 5 |
LexusR, спасибо попробую |
17 окт 14, 11:12 [16718874] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |