-3
SELECT COUNT(*) AS CNT
FROM ABCD
WHERE TRIM(UPPER(FIRSTNAME)||UPPER(SECONDNAME)) LIKE UPPER('aa')||UPPER('aaa') 

我需要将上述查询转换为 MSSQL。请帮忙。

4

2 回答 2

1

我认为您正在尝试连接。使用 + 运算符或 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'), '%')
于 2013-09-30T11:42:27.543 回答
0

正确的语法是:

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') + '%'
于 2013-09-30T11:53:22.270 回答