Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
Привет! Сталкнулся с такой необходимостью: - как сделать Subj, например в секции "where" команды Select, т.к. условия в одном и том же запросе меняются (и кол-во условий), а создавать 5-10 хранимых процедур, которые бы отличались только одним селектом не хочется, да и поддерживать не очень удобно .... - возможно ли в select в секции "from" подставлять источник самостоятельно (например три таблицы data1, data2, data3 и если @Num=1, то Select по Data1, если 2 - data2 и т.д.)? Заранее благодарен. С уважением, Михаил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 10:05 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
declare @StringSQL varchar(1000) set @StringSQL = формируете выражение запроса exec(@StringSQL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 10:52 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
- view - inline functions ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 11:56 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
2 SergSuper А можно поподробнее о способе со view, что то я не понял как его в данном случае можно использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 12:05 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
2 Genady Да вроде всё очевидно, я имел ввиду примерно такое: create View SuperView as select * from tbl1,..., tbl20 where постоянные_условия go select * from SuperView where меняющиеся_условия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 13:03 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
Если имеется стандартный набор условий для WHERE то можно сделать вот так: CREATE PROCEDURE test @param1 varchar(255) =NULL, @param2 int =NULL AS SELECT .. FROM ... WHERE (fiield1 LIKE @param1 or @param1 is null) AND (fiield2=@param2 or @param2 is null) AND ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 14:35 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо за ответы. To Genady: Через Exec(SCommad) все должно получиться To SergSuper: >- inline functions А что это за зверь? Если можно, то поподробнее плиз, в BOL ничего об этом найти не смог ... To Victor: Так к сожалению не получиться т.к. не какие условия, не тем более их количество не известно С уважением, Михаил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 15:05 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
2 N_Michael Если у Вас не MSSQL 2000 то с inline function - обломинго они появились только в этой версии сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 15:13 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
To Gennady: >Если у Вас не MSSQL 2000 то с inline function - обломинго >они появились только в этой версии сервера. Так что это такое? Может только из-за этого и стОит SQL 2000 установить. Все равно пока только играюсь/пробую всякие всякости реализовать/ чтобы более быстро перенести данные туда и написать/перенести отчетность (I этап). Я SQL 7 поставил, т.к. решил что там будет меньше глюков (всетаки 3 патча вышло), может действительно SQL 2000 или пока рано? подскажите гуру!!! С уважением, Михаил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 17:04 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
inline functions, или UDF (user defined functions) появились в версии 2000. Они позволяют создать пользовательскую функцию (именно функцию, а не процедуру), которую, в частности, можно использовать в запросе: select Fld1, Fld2, MyFunction1(Fld1,Fld2) where Fld3=MyFunction2(Fld4) На хранимых процедурах ничего подобного в принципе сделать невозможно - нужно выкручиваться на временных таблицах. Вообще, в этой версии много чего хорошего появилось (вкратце): - каскадные оперции обеспечения ссылочной целостности (DRI) подобно тому, как это было в Access (еще додревних версий) - материализованные представления - новый тип данных Variant - instead-триггеры, отрабатывающие ДО DRI. Их можно цеплять не только к таблицам, но и ко VIEW - Существенно развиты возможности DTS. К сожалению, вместе с большим количеством усовершенствований, в эту версию внесено не менее существенное количество глюков. Смотри, что для тебя важнее. Если безглючность, то лучше 7.0. Если новые функциональные возможности, то 2000, конечно же, гораздо более продвинутый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2001, 21:19 |
|
||
|
Макроподстановка в Select ...
|
|||
|---|---|---|---|
|
#18+
2 Garya Да уж. список новых фич можно продолжать и продолжать В связи с этим у меня появился вопрос, думаю его лучше вынести в новую ветку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2001, 09:21 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32004533&tid=1826926]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 413ms |

| 0 / 0 |
