Условие SQL, где 2 значения имеют общий символ - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь создать запрос, который перечисляет staffID, staffName и staffDOB, но только для персонала, имя и фамилия которого начинаются с одной и той же буквы.Итак, у меня есть staffFirst и staffLast в виде отдельных столбцов, которые будут объединены.Я не буду настраивать staffID и staffDOB.Я хотел бы, чтобы он возвращал имя персонала, например, adam apple = apple, поэтому результат будет выглядеть следующим образом:

staffID | staffName | staffDOB
------------------------------
1       | A Apple   | 12/10/99
....    | ....      | ....

Все столбцы находятся в одной таблице "N_Staff".Я использую HeidiSQL, который я считаю, использует MySQL.Я знаю, как получить данные каждого столбца, хотя он выбирает первые буквы имени и фамилии и сравнивает их, что меня смущает, так как это не конкретная буква, которую я ищу, а любая буква, которая является общей на обоихтаблицы индекса [0].

Пока:

SELECT staffID FROM N_Staff,
SELECT staffFirst, staffLast AS staffName
FROM N_Staff WHERE ... , --perhaps should be using LEFT ?
SELECT staffDOB from N_Staff;

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

используйте это:

    SELECT * FROM NS_WORDS; 
    mani
    nikhil
    sugandh
    mining
    _lkdnsad
    _lkdndsadnjas
    _lk
    _ja
    _ls
    _lsa
    nikhil nikhil
    nikhil name

SELECT * FROM NS_WORDS
where not( to_char(SUBSTR(a,1,1))=to_char(substr(a,instr(a,' ',1,1),1))); 

output:
nikhil nikhil
nikhil name

ваше куда пойдет как:

where not( to_char(SUBSTR(staffName ,1,1))=to_char(substr(staffName 
,instr(staffName ,' ',1,1),1))); 
0 голосов
/ 03 декабря 2018

Как насчет:

SELECT staffID, CONCAT(LEFT(staffFirst,1), ' ', staffLast) AS staffName, staffDOB
FROM N_Staff
WHERE LEFT(staffFirst,1) = LEFT(staffLast,1)
...