SQL выберите 2 столбца в 1 таблице, ГДЕ column1 ПОХОЖ НА column2

#sql #ms-access

#sql #ms-access

Вопрос:

Привет, ребята, я новичок в sql, вот моя таблица

введите описание изображения здесь

Я просто хочу выбрать все одинаковые значения.

пример вывода:

 AA AA U
BB BB U
DD DD
  

Комментарии:

1. Откуда берется U? Вы хотите выводить в виде двух столбцов или трех столбцов?

2. Вы можете попробовать выбрать concat(символ, ‘ ‘, comp)

3. Я хочу вывести его только в виде двух столбцов

4. ВЫБЕРИТЕ * ИЗ таблицы, ГДЕ comp ПОХОЖ НА символ я пробовал этот запрос, но ничего не происходит.

5. Попробуйте решение, которое я опубликовал.

Ответ №1:

Скрипка SQL: — http://sqlfiddle.com /#!6/c4564/7

     SELECT symbol,
           comp
      FROM table0
     WHERE CHARINDEX(symbol,comp) > 0
UNION ALL
     SELECT a.symbol AS symbol,
            b.comp AS comp
       FROM table0 a, table0 b
      WHERE a.symbol = b.comp 
     ;
  

Комментарии:

1. могу ли я спросить, почему существует 3 таблицы? я сталкиваюсь с ошибкой, каждая производная таблица должна иметь свой собственный псевдоним?

2. Попробуйте сейчас. Я добавил псевдоним

3. Какой sql вы используете? кажется, я не могу заставить его работать

4. я использую ms access прямо сейчас, в выражении указано неопределенная функция charindex можно ли спросить, можете ли вы преобразовать код в mysql или tsql?

5. затем вы сначала пересматриваете теги ur

Ответ №2:

Попробуйте это:

  SELECT charindex.symbol, (SELECT comp FROM charindex AS C2 WHERE LEFT(c2.comp,2) = charindex.symbol) AS Comp2
    FROM charindex
    WHERE ((((SELECT comp FROM charindex AS C2 WHERE LEFT(c2.comp,2) = charindex.symbol))<>""));
  

Комментарии:

1. этим подзапросом может быть возвращено не более одного записанного

2. странно. Я действительно провел тест и получил ваш точный результат.