Kgn*_*web 0 select sql-server-2012
下面是简单的SQL查询,用于在条件中选择记录.
--like this I have 6000 usernames
select * from tblUsers where Username in ('abc ','xyz ',' pqr ',' mnop ' );
Run Code Online (Sandbox Code Playgroud)
我知道在sql中有LTrim&Rtrimleft分别从左和右删除前导尾随空格.
我想从我提供给选择查询的所有用户名中删除左右空格.
注意: -
我想修剪我在in子句中传递的值.(我不想将LTrim和RTrim传递给每个传递的值).
记录中没有尾随空格,但是我在子句中传递的值是从excel复制然后粘贴到Visual Studio中的.然后使用ALT键我在字符串的左侧和右侧放置'(单引号).由于这个原因,一些字符串在右侧尾部有空格.
如何
trim在select查询中使用该函数?
我正在使用MS SQL Server 2012
如果我正确理解您的问题,您将从Excel粘贴到INadhoc查询中的子句中,如下所示.
尾随空格无关紧要.它仍将匹配foo没有任何尾随空格的字符串.
但是你需要确保没有前导空格.
由于数据来源是Excel,为什么不只是在那里做到这一点?
你可以使用公式
= CONCATENATE("'",TRIM(SUBSTITUTE(A1,"'","''")),"',")
Run Code Online (Sandbox Code Playgroud)
然后复制结果(从上面屏幕截图中的B列),只需要从最终条目中删除额外的逗号.
你可以这样做:
select * from tblUsers where LTRIM(RTRIM(Username)) in (ltrim(rtrim('abc')),ltrim(rtrim('xyz')),ltrim(rtrim('pqr')),ltrim(rtrim('mnop')));
Run Code Online (Sandbox Code Playgroud)
但是,如果您有更新数据库的权限。请删除您字段中的所有空格Username。这样查询确实不太好。