Конференция "Базы" » Выборка с условием IN (VARCHAR)
 
  • pushkin42 © (08.12.14 10:03) [0]
    Как организовать выборку, имея:

    SELECT a,b,c FROM d WHERE a IN (qq)



    где QQ - VARCHAR(1024) в БД?

    Ругается: conversion error from string('value1,value2...')

    Если делать выборку напрямую со значениями (WHERE a IN (value1,value2)) не ругается и работает. Может, конструкцию преобразования какую?...
  • Виталий Панасенко (08.12.14 10:10) [1]
    А СУБД какая?
  • pushkin42 © (08.12.14 10:15) [2]
    FB 2.5
  • junglecat © (08.12.14 10:41) [3]
    QQ - это поле? а как выглядит в нем значение?
  • pushkin42 © (08.12.14 10:51) [4]
    QQ - поле в другой таблице
    тип VARCHAR(2048)
    значение вида 1,3,5,7,9,14

    ну собственно вот: http://i60.tinypic.com/o7llcy.png

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

    зы: я, конечно, могу сделать костыль в виде прямой выборки из Delphi, но как-то не хочется нарушать каноны...
  • junglecat © (08.12.14 11:08) [5]
  • pushkin42 © (08.12.14 11:11) [6]
    Спасибо, дорогой:) помогло.
  • Кщд © (08.12.14 11:51) [7]
    >pushkin42 ©   (08.12.14 10:03)
    если d - сравнительно небольшая, то:
    1. в qq хранить данные с лидирующей и последней запятой (пример: ",1,2,3,");
    2. искать так: SELECT a,b,c FROM d WHERE qq like '%,' || a || ',%'.

    >я, наверное, зря стал запихивать их в строку, но теперь уже поздно пить >боржоми...
    1. зря;
    2. не поздно.
  • Sergey13 © (09.12.14 08:23) [8]
    2pushkin42 ©   (08.12.14 10:51) [4]
    > но как-то не хочется нарушать каноны...
    Канонами тут и не пахнет. Нарушать нечего. 8-)
    Насколько я понял, вместо полей вопросов и ответов нужна таблица с вопросами и ответами на них, относящиеся к данному экзамену студента.
 
Конференция "Базы" » Выборка с условием IN (VARCHAR)
Есть новые Нет новых   [134427   +34][b:0][p:0.001]