0

我已经阅读了一些文档,因为它SELECT TRIM('') FROM something;可以用来修剪字符串。

我有 SQL 命令来获取表:

"select NRO,SNAME,NAMEA,NAMEB,ADDRESS,POSTS,POSTN,POSTTP,COMPANY,COUNTRY,BID from COMPANY where ACTIVE = '1' AND NRO Like '7%'"

所以我尝试使用:

"select TRIM(NRO),TRIM(SNAME),TRIM(NAMEA),TRIM(NAMEB),TRIM(ADDRESS),TRIM(POSTS),TRIM(POSTN),TRIM(POSTTP),TRIM(COMPANY),TRIM(COUNTRY),TRIM(BID) from COMPANY where ACTIVE = '1' AND NRO Like '7%'"

但这会引发错误。在这种情况下使用 TRIM 的正确方法是什么?我需要从左右删除空格,但如果有的话,请将它们留在中间。

错误信息:

客户端接口][LNA][PSQL][SQL Engine]表达式错误:TRIM (NRO) ERROR [HY000] [PSQL][ODBC Client Interface][LNA][PSQL][SQL Engine][Data Record Manager]Invalid user -定义或标量函数。

4

1 回答 1

1

您可以使用LTRIMRTRIM函数删除 2017 年之前的 SQL Server 的开始和结束空格。

因此,您的查询变为:

 select RTRIM(LTRIM(NRO)),
    RTRIM(LTRIM(SNAME),
    RTRIM(LTRIM(NAMEA)),
    RTRIM(LTRIM(NAMEB)),
    RTRIM(LTRIM(ADDRESS)),
    RTRIM(LTRIM(POSTS)),
    RTRIM(LTRIM(POSTN)),
    RTRIM(LTRIM(POSTTP)),
    RTRIM(LTRIM(COMPANY)),
    RTRIM(LTRIM(COUNTRY)),
    RTRIM(LTRIM(BID))
from COMPANY where ACTIVE = '1' AND NRO Like '7%'

对于 SQL Server 2017 及更高版本,您可以按照 Dale K 的建议使用TRIM函数。

于 2020-05-30T09:27:47.773 回答