Применение правила

SELECT LTRIM(RTRIM(HOST0149.LOGINID)) AS LOGINID, LTRIM(RTRIM(HOST0140.EMAIL)) AS EMAIL, LTRIM(RTRIM(HOST0149.USERKEY)) AS ROLE FROM HOST0149 LEFT JOIN HOST0140 ON HOST0149.PERSONKEY = HOST0140.PERSONKEY 

Привет, Я пытаюсь применить правило на столбце select for email. Иногда идентификатором входа является адрес электронной почты пользователей, как применить правило, которое, если сообщение электронной почты появляется в идентификаторе входа, не возвращает ничего для столбца электронной почты? Любая помощь будет высоко оценена, спасибо.

CASE...WHEN следует это делать. В принципе, вы обрабатываете оба случая явно.

 SELECT LTRIM(RTRIM(HOST0149.LOGINID)) AS LOGINID, CASE WHEN LTRIM(RTRIM(HOST0140.EMAIL)) = LTRIM(RTRIM(HOST0149.LOGINID)) THEN NULL ELSE LTRIM(RTRIM(HOST0140.EMAIL)) END AS EMAIL, LTRIM(RTRIM(HOST0149.USERKEY)) AS ROLE FROM HOST0149 LEFT JOIN HOST0140 ON HOST0149.PERSONKEY = HOST0140.PERSONKEY 

Я думаю, что выражение case делает то, что вы хотите:

 SELECT LOGINID, (CASE WHEN LOGINID <> EMAIL THEN EMAIL END) as EMAIL, ROLE FROM (SELECT LTRIM(RTRIM(HOST0149.LOGINID)) AS LOGINID, LTRIM(RTRIM(HOST0140.EMAIL)) AS EMAIL, LTRIM(RTRIM(HOST0149.USERKEY)) AS ROLE FROM HOST0149 LEFT JOIN HOST0140 ON HOST0149.PERSONKEY = HOST0140.PERSONKEY ) hh 

Это даст результат:

 select LOGINID, EMAIL, ROLE FROM(SELECT LTRIM(RTRIM(HOST0149.LOGINID)) AS LOGINID, LTRIM(RTRIM(HOST0140.EMAIL)) AS EMAIL, LTRIM(RTRIM(HOST0149.USERKEY)) AS ROLE FROM HOST0149 LEFT JOIN HOST0140 ON HOST0149.PERSONKEY = HOST0140.PERSONKEY) WHERE EMAIL NOT LIKE '%@%' 
  • SQL-вложенные инструкции IF-ELSE
  • SQL - если параметры в хранимой процедуре
  • exec sp_executesql в строках IF и WHILE
  • Как я могу использовать транзакции «Использовать » в операциях IF в SQL?
  • Как выполнить IF ... ТОГДА в SQL SELECT?
  • Оператор SET всегда работает независимо от условия IF ELSE
  • Производительность SQL Server - IF Select + Update vs Update
  • SQL Server IF EXISTS THEN 1 ELSE 2
  • Почему я не могу использовать оператор if внутри оператора select? Кто-нибудь знает другой метод?
  • Сравнение строк SQL с использованием IF
  • SQL Server: IF EXISTS; ELSE
  • Interesting Posts

    Выбор записей DISTINCT в подмножестве столбцов с MAX в другом столбце

    SQL Server & Mappoint / пространственный стол / Long & Lat

    Как избежать этих взаимоблокировок?

    TSQL CASE КОГДА ЭТО СИНТАКСИС – ИСПОЛЬЗОВАНИЕ ЗАМЕНИТЬ

    Каков наилучший способ обмена данными базы данных между несколькими сайтами?

    Синтаксис SQL-соединения, когда вы используете «AS»?

    Удалить идентификатор из столбца таблицы

    SQL Server эквивалентен использованию для JOIN во избежание дублирования столбцов

    Наиболее эффективное (пространство для хранения) способ хранения гистограмм в SQL

    Как получить подстроку перед первым числовым значением с TSQL?

    Как преобразовать ЕДИНИЦУ ИЗМЕРЕНИЯ в SQL SERVER ИЛИ ORACLE, ИСПОЛЬЗУЯ ЗАЯВЛЕНИЕ О ЗАЯВКЕ

    Рассчитать разницу во времени (только часы работы) в минутах между двумя датами

    Компиляция планов SQL и таблицы истинности

    Массовые вставки записей в базу данных SQL Server

    SQL INNER JOIN против LEFT JOIN с WHERE

    Давайте будем гением компьютера.