|
преобразование типов
|
|||
---|---|---|---|
#18+
есть запрос Код: sql 1. 2. 3. 4. 5.
Код: sql 1.
выдает естественно стринг - числа через запятую. , например "337638,327087,327047,327044,326764,326258,1" Мне надо изменить запрос, чтобы работало условие MAIN1.code in (полученные выше числа). если пишу напрямую Код: sql 1.
- естественно получаю ошибку несовпадения типов в условии отбора. можно ли как-нибудь функциями SQL, те в запросе,без vba выполнить преобразование типа, что бы это условие работало? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 13:52 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Serg197311 без vba выполнить преобразование типа, что бы это условие работало? А у вас , случаем, поле MAIN1.code не текстовое? Похоже на то ... Если да, то в оператор IN() следует передавать не числа, а строки, т.е. те же числа, только каждое в кавычках (как текстовое значение) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 17:52 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
А Вы гляньте это (может чё сгодится): ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 22:01 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Или так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2021, 22:46 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Sdku, спасибо.... Но я специально подчеркнул - без vba, приведение типа необходимо выполнить в запросе методами sql... как через vba я конечно знаю, сейчас так и работает.... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 06:53 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Serg197311 Но я специально подчеркнул - без vba Хм ... А как насчёт вашего же: Код: sql 1.
... противоречите самому себе, Replace() одна из встроенных функций VBA однако. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:09 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Eugene-LS ... противоречите самому себе, Replace() одна из встроенных функций VBA однако. А можно поерничать? Ладно,не буду. Работает она и в Jet sql, можете проверить ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:17 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Eugene-LS Serg197311 без vba выполнить преобразование типа, что бы это условие работало? А у вас , случаем, поле MAIN1.code не текстовое? Похоже на то ... Счетчик, ключевое поле Eugene-LS Если да, то в оператор IN() следует передавать не числа, а строки, т.е. те же числа, только каждое в кавычках (как текстовое значение) это было бы проще.....через тот же replace - без проблем.....sdku вон уже написал как... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:24 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:32 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Serg197311, как размышления. Источник подчинённого запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 10:51 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Akina Код: sql 1.
АААААААА!!!! вот что значит опыт!!! я не смог додуматься! Спасибо, еще не успел попробовать но уверен заработатет!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 11:11 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Eugene-LS следует передавать не числа, а строки, т.е. те же числа, только каждое в кавычках (как текстовое значение) а что мешает в реплейсе менять [-] не на [,] а на [','] и потом добавить ['] спереди и сзади ? тогда и IN... подойдет ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 11:53 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
stu314 а что мешает в реплейсе менять [-] не на [,] а на [','] и потом добавить ['] спереди и сзади ? тогда и IN... подойдет Добавить ничего не мешает. А вот IN всё равно не будет работать. Ибо получится не Код: sql 1.
, а Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 12:46 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Akina stu314 а что мешает в реплейсе менять [-] не на [,] а на [','] и потом добавить ['] спереди и сзади ? тогда и IN... подойдет Добавить ничего не мешает. А вот IN всё равно не будет работать. Ибо получится не Код: sql 1.
, а Код: sql 1.
у меня по другому получается :) ?"'" & replace("327044-326764-326258-1","-","','") & "'" '327044','326764','326258','1' кавычки на апострофы и наоборот при необходимости можно и через Chr 34 и 39 сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 13:30 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
stu314 кавычки на апострофы и наоборот при необходимости можно и через Chr 34 и 39 сделать Чего там в replace не вытворяй - все равно в итоге будет string а в Код: sql 1.
нужны числа ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 14:10 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Для полного понимания.... я пытаюсь ускорить выполнение запроса Вот с применением Дао(не в смысле - DAO, а в смысле тайного знания:)) Акины Код: sql 1. 2. 3. 4. 5. 6.
он работает.... но проигрывает в скорости тому что было раньше... Код: sql 1. 2. 3. 4. 5.
+ Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Дао Панурга пока ниасилел.... получаю несовпадение типов.... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 14:16 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Serg197311 Чего там в replace не вытворяй - все равно в итоге будет string а в Код: sql 1.
нужны числа можно и строки - добавить CStr, только строка должна уже быть готова для IN - в самом запросе преобразование не срабатывает т.е. '327044','326764','326258','1' пардон, до сих пор не умею картинки правильно вставлять... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 15:47 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
stu314 кавычки на апострофы и наоборот при необходимости можно и через Chr 34 и 39 сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 16:39 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
stu314 .... ?"'" & replace("327044-326764-326258-1","-","','") & "'" '327044','326764','326258','1' ... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 17:02 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Прошу пардон. Апаздал-ходил покурить а потом, не глядя в топик, отправил так что без VBA.... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 17:07 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Akina А ты проделай это не в Immediate (VBA), а в SQL-окне конструктора запросов. Тогда поймёшь. попробовал, не понял :( такая картинка пойдет или я что то не там сделал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 17:07 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Serg197311 можно ли как-нибудь функциями SQL, те в запросе,без vba выполнить преобразование типа, что бы это условие работало? тип поля и отображение его содержимого таки разные весчи Строку типа STR вида 327044-326764-326258-1 можно отобразить '327044','326764','326258','1' но это будет та же строка Стесняюсь спросить-а откуда берется такая строка и разве хранить в БД данные в таком виде не есть грубейшее нарушение правил "нормальных форм" Без VBA здесь не обойтись. Я так думаю!(Мимино) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 17:38 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
sdku оставаясь строкой,которая не прокатит в качестве условия отбора по числовому полю тип поля и отображение его содержимого таки разные весчи можно не строку к числу приводить, а число к строке :) https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1339220&msg=22380105 я не утверждаю что так правильно делать, чисто теоретические изыскания... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 18:03 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
stu314 такая картинка пойдет или я что то не там сделал ? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 18:49 |
|
преобразование типов
|
|||
---|---|---|---|
#18+
Akina Не-е-е... ты этот плод своего творчества во WHERE попробуй запихать... насчет попадания в IN и выполнения условий - я писал выше (внимательнее надо быть) - запрос не сработает правильно - там только конкретные значения (готовая строка списка значений), во всех остальных ф-циях - chr и конкатенация - нет проблем - можешь сам попробовать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2021, 20:02 |
|
|
start [/forum/topic.php?fid=45&msg=40102447&tid=1609584]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 274ms |
total: | 424ms |
0 / 0 |