SELECT COUNT(*) AS CNT
FROM ABCD
WHERE TRIM(UPPER(FIRSTNAME)||UPPER(SECONDNAME)) LIKE UPPER('aa')||UPPER('aaa')
我需要将上述查询转换为 MSSQL。请帮忙。
SELECT COUNT(*) AS CNT
FROM ABCD
WHERE TRIM(UPPER(FIRSTNAME)||UPPER(SECONDNAME)) LIKE UPPER('aa')||UPPER('aaa')
我需要将上述查询转换为 MSSQL。请帮忙。
我认为您正在尝试连接。使用 + 运算符或 CONCAT 函数。
WHERE LTRIM(RTRIM(UPPER(FIRSTNAME) + UPPER(SECONDNAME))) LIKE '%' + UPPER('aa') + UPPER('aaa') + '%'
WHERE LTRIM(RTRIM(CONCAT(UPPER(FIRSTNAME), UPPER(SECONDNAME)))) LIKE CONCAT('%', UPPER('aa'), UPPER('aaa'), '%')
正确的语法是:
SELECT COUNT(*) AS CNT
FROM Production.Categories
WHERE (LTRIM(RTRIM(UPPER(FIRSTNAME))) LIKE '%' + UPPER('aa') + '%'
OR LTRIM(RTRIM(UPPER(FIRSTNAME))) LIKE '%' + UPPER('aaa') + '%')
OR
(LTRIM(RTRIM(UPPER(SECONDNAME))) LIKE '%' + UPPER('aa') + '%'
OR LTRIM(RTRIM(UPPER(SECONDNAME))) LIKE '%' + UPPER('aaa') + '%'))
但是,当您的名字或姓氏包含“aaa”时,肯定包含“aa”,因此如果您这样写,您的查询将得到满足:
SELECT COUNT(*) AS CNT
FROM Production.Categories
WHERE
LTRIM(RTRIM(UPPER(FIRSTNAME))) LIKE '%' + UPPER('aa') + '%'
OR
LTRIM(RTRIM(UPPER(SECONDNAME))) LIKE '%' + UPPER('aa') + '%'