Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Помогите написать функцию Atrim()  [new]
max2000
Member

Откуда:
Сообщений: 189
Помогите написать функцию которая обрезает пустой текст и слева и справа, т.е чтоб не писать постоянно: RTRIM(LTRIM(@sStr)).
а написать Atrim(@sStr)
1 авг 17, 13:08    [20691405]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36697
create function dbo.Atrim ...
1 авг 17, 13:16    [20691447]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4101
max2000
Помогите написать функцию которая обрезает пустой текст и слева и справа, т.е чтоб не писать постоянно: RTRIM(LTRIM(@sStr)).
а написать Atrim(@sStr)


Охренеть! Разница аж в 7 лишних символов!!!
Впрочем если назвать функцию T(@sStr), то можно сэкономить еще целых 4!
Представляю насколько после этого вырастет производительность вашего труда!

+ маленький секретик
погуглите фразу "code snippet"! но если лень, что скорее всего, то нажмите Ctrl + K
1 авг 17, 13:46    [20691629]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
max2000
Member

Откуда:
Сообщений: 189
SQL2008
max2000
Помогите написать функцию которая обрезает пустой текст и слева и справа, т.е чтоб не писать постоянно: RTRIM(LTRIM(@sStr)).
а написать Atrim(@sStr)


Охренеть! Разница аж в 7 лишних символов!!!
Впрочем если назвать функцию T(@sStr), то можно сэкономить еще целых 4!
Представляю насколько после этого вырастет производительность вашего труда!

+ маленький секретик
погуглите фразу "code snippet"! но если лень, что скорее всего, то нажмите Ctrl + K


Обожаю туалетных критиком которые ни хрена не знают ответа на вопрос разводят димогогию вместо того чтоб подсказать.

А теперь умник посчитай если у меня свыше 300 запросов каждый из которых длиной по 3209 символов помножить на 4 лишние.
Вотрос разница охринеть или так себе?

Я прошу помощи а не туалетной философии, что за привычка не помогать а рассуждать ? не скем поговорить чтоли???

Я никогда не сталкивался с написанием функции, прошу помощи, форум для помощи создан или для рассуждения? не пойму зачем флудить (

Коль не знаете или не можите помоч, так уж и быть закрою туалетную критику и поищу в другом месте ответ!
1 авг 17, 14:33    [20691816]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36697
Модератор: max2000, первое и последнее китайское предупреждение. Не нравится, что вам отвечают на форуме, наймите консалтера.


Сообщение было отредактировано: 1 авг 17, 14:46
1 авг 17, 14:45    [20691853]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4101
max2000
Обожаю туалетных критиком которые ни хрена не знают ответа на вопрос разводят димогогию вместо того чтоб подсказать.

А теперь умник посчитай если у меня свыше 300 запросов каждый из которых длиной по 3209 символов помножить на 4 лишние.
Вотрос разница охринеть или так себе?

Я прошу помощи а не туалетной философии, что за привычка не помогать а рассуждать ? не скем поговорить чтоли???

Я никогда не сталкивался с написанием функции, прошу помощи, форум для помощи создан или для рассуждения? не пойму зачем флудить (

Коль не знаете или не можите помоч, так уж и быть закрою туалетную критику и поищу в другом месте ответ!


Обожаю нетуалетных философов! Аж монитор наверно слюной забрызгал
Судя по экспрессивности вам еще нет и 18-ти?
Вам уже разрешают включать компьютер самостоятельно?

max2000
посчитай если у меня свыше 300 запросов каждый из которых длиной по 3209 символов помножить на 4 лишние

Я правильно понимаю, что все 300 запросов, состоят из 3209 фраз RTRIM(LTRIM(...)) ?
Иначе зачем нам это все умножать?
Вы алгебру уже начали проходить или ещё повторяете таблицу умножения?
1 авг 17, 14:50    [20691871]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4101
Если же говорить серьёзно, то использование функций, даже экономящих количество нажатий на клавиши, приведет к значительному падению производительности запросов.
Почему объяснять не буду.
Захотите - узнаете сами, не думаю, что мнение туалетного критика вас заинтересует.
1 авг 17, 14:59    [20691900]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
max2000
Помогите написать функцию которая обрезает пустой текст и слева и справа, т.е чтоб не писать постоянно: RTRIM(LTRIM(@sStr)).
а написать Atrim(@sStr)

а потом ты приползёшь, с темой что у меня скалярочки и всё медленно
1 авг 17, 15:23    [20691976]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
max2000
Member

Откуда:
Сообщений: 189
Люди... вы что такие злые. Я же не так много прошу. Ну неработал я с функциями и не могу разобраться щас просто срочно надо написать и запустить. Производительность меня не волнует ибо запрос и безтого не быстый. А данные получены в ужастном виде посему в каждой таблице в каждом поле. А длина запроса по симвалам ограниченна посему решил сэканомить по 6 символов. Невижу ничего плохого в этом (.
1 авг 17, 15:47    [20692104]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
dgtjurye
Guest
http://stackoverflow.com/questions/951518/replace-a-newline-in-tsql
1 авг 17, 15:52    [20692128]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
max2000
Member

Откуда:
Сообщений: 189
dgtjurye
http://stackoverflow.com/questions/951518/replace-a-newline-in-tsql


Огромное спасибо!!!


Тема закрыта.
1 авг 17, 15:57    [20692161]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4101
max2000, эх... Ну держите.
CREATE FUNCTION dbo.T
(	
	@str nvarchar(255)
)
RETURNS nvarchar(255)
AS
BEGIN
	RETURN RTRIM(LTRIM(@str))

END
GO
1 авг 17, 16:02    [20692186]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
max2000
Member

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

Спасибо вам большое. Выпросил)
1 авг 17, 16:11    [20692230]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Владислав Колосов
Member

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

в таблице не должны находиться недостоверные данные. То, что вы вынуждены использовать тримминг говорит о том, что Вы храните в таблице хлам, а не данные. Валидируйте данные при вставке или триммингуйте, как угодно. Но добейтесь достоверности.
1 авг 17, 16:23    [20692294]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
max2000
SQL2008,

Спасибо вам большое. Выпросил)
В сиквеле крайне не рекомендуется использовать скалярные пользовательские функции.
Потом затратите время, вычищая - не слышал ни об одном случае, когда этого бы не пришлось делать.

Именно поэтому народ не писал про этот вариант, а не потому что злые или не знают.
2 авг 17, 01:51    [20693352]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
max2000
Я никогда не сталкивался с написанием функции, прошу помощи, форум для помощи создан или для рассуждения?
Проще вам глянуть на пример в хелпе, чем нам копировать этот пример в форум.
Но лучше пишите rtrim(ltrim(...)), так будет правильнее.
2 авг 17, 01:53    [20693353]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
klikli
Member

Откуда:
Сообщений: 9
alexeyvg
max2000
SQL2008,

Спасибо вам большое. Выпросил)
В сиквеле крайне не рекомендуется использовать скалярные пользовательские функции.
Потом затратите время, вычищая - не слышал ни об одном случае, когда этого бы не пришлось делать.

Именно поэтому народ не писал про этот вариант, а не потому что злые или не знают.


Прошу прощение за то что щас напешу, но всеже. Все мы люди и понимаем в той или иной степени друг друга, может я дурак в чемто но я не понимаю почему сразу все это не сказать а начинать разводить бессмысленную демагогию? за время что я работаю в гис ЖКХ я такое увидел и с таким столкнулся что без мата не описать. Щас мне пришлось с толкнутся с организацией котора хранит данные в ужасном виде и мне приходят огромменые таблицы в dbf которые я не точто предворительно триминговать не могу я их нормально загрузить на SQL не могу из-за огроменного размера (в каждой по 10 мил.записей и около 100 полей) если б был способ прочитать dbf построчно в t-SQL я триминговал все поля. Щас я ищу способ грузить dbf построчно и переберать все поля в цикле, ибо неизвестно какие поля будут в следующем месяце (да именно не известно, потому что компания что шлёт их сегодня пришлет так а завтро наоборт с добавлением или отсечением полей, а ты как хочешь так и крутись). Хелп почитал но не догнал какую именно функцию написать табличную или скалярную или ещё какую, поэтому решил спросить людей чтоб подсказали, а от граблей все ровно всех не убережешь, "пока человек сам не упадёт он не поймет что там ходить не стоит".

Но несмотря на все я всем благодарен всем Спасибо!
2 авг 17, 07:44    [20693458]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
aleks222
Guest
klikli
огромменые таблицы в dbf которые я не точто предворительно триминговать не могу я их нормально загрузить на SQL не могу из-за огроменного размера (в каждой по 10 мил.записей и около 100 полей) если б был способ прочитать dbf построчно в t-SQL я триминговал все поля. Щас я ищу способ грузить dbf построчно и переберать все поля в цикле, ибо неизвестно какие поля будут в следующем месяце (да именно не известно, потому что компания что шлёт их сегодня пришлет так а завтро наоборт с добавлением или отсечением полей, а ты как хочешь так и крутись).


Вас из дворников перевели в программисты?
DBF грузятся в MS SQL легко и непринужденно.

Также легко и непринужденно можно их транкейтить, и не "по-строчно", а гопом.
2 авг 17, 08:37    [20693527]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Cammomile
Member

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

автор
@str nvarchar(255)

Ты ведь его троллишь, а он не понимает. Ну вот зачем так?
2 авг 17, 10:44    [20694006]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30821
klikli
поэтому решил спросить людей чтоб подсказали
Это вы спрашиваете под разными логинами???
klikli
Хелп почитал но не догнал какую именно функцию написать табличную или скалярную или ещё какую, поэтому решил спросить людей чтоб подсказали, а от граблей все ровно всех не убережешь, "пока человек сам не упадёт он не поймет что там ходить не стоит".
Умный учится на чужих ошибках.
Подсказываю, нужно не "писать функцию", а использовать выражение rtrim(ltrim(...)).
2 авг 17, 10:56    [20694088]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Cammomile
Member

Откуда:
Сообщений: 1212
Надо поставить SSMS BOOST или SQL TOOLBELT и настроить сниппет на trim либо tr если совсем уж лень нажимать кнопки.
2 авг 17, 11:03    [20694133]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
ЕвгенийВ
Member

Откуда: Москва
Сообщений: 4903
28 лет ждали!
2 авг 17, 12:53    [20694666]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
ЕвгенийВ
28 лет ждали!
Ну, честно-то говоря, не так уж это и надо!
2 авг 17, 13:39    [20694854]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3466
SQL2008
max2000, эх... Ну держите.
CREATE FUNCTION dbo.T
(	
	@[b]str nvarchar(255)[/b]
)
RETURNS [b]nvarchar(255)[/b]
AS
BEGIN
	RETURN RTRIM(LTRIM(@str))

END
GO


примечание: если строка будет тримнута слева и справа, то возвращаемое значение будет по длине короче, чем входящее
2 авг 17, 14:13    [20694966]     Ответить | Цитировать Сообщить модератору
 Re: Помогите написать функцию Atrim()  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3466
aleks222
klikli
огромменые таблицы в dbf которые я не точто предворительно триминговать не могу я их нормально загрузить на SQL не могу из-за огроменного размера (в каждой по 10 мил.записей и около 100 полей) если б был способ прочитать dbf построчно в t-SQL я триминговал все поля. Щас я ищу способ грузить dbf построчно и переберать все поля в цикле, ибо неизвестно какие поля будут в следующем месяце (да именно не известно, потому что компания что шлёт их сегодня пришлет так а завтро наоборт с добавлением или отсечением полей, а ты как хочешь так и крутись).


Вас из дворников перевели в программисты?
DBF грузятся в MS SQL легко и непринужденно.

Также легко и непринужденно можно их транкейтить, и не "по-строчно", а гопом.


димагогия = Дима и Гогия
2 авг 17, 14:14    [20694970]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить