小编JMS*_*S49的帖子

TSQL 2008使用LTrim(RTrim并且数据中仍有空格

我将数据清理到旧数据表中,然后再将其移动到新数据表中.其中一个字段在列中左右有空格.我写了下面的代码来解决这个问题,但仍然有领先的空间?使用此代码时,大部分数据都是干净的,但由于某种原因,在RT地址之前有空格......有其他人有这种类型的问题吗?

,CASE   
WHEN PropStreetAddr IS NOT NULL
 THEN  (CONVERT(VARCHAR(28),PropStreetAddr))  
WHEN PropStreetAddr is NOT NULL Then  (Select LTrim(RTrim(PropStreetAddr)) As PropStreetAddr)
     ELSE NULL END  as 'PROPERTY_STREET_ADDRESS'
Run Code Online (Sandbox Code Playgroud)

样本输出数据:

1234 20th St 
  RT 1 BOX 2  
560 King St  
610 Nowland Rd  
  RT 1  
1085 YouAreHere Ln  
  RT 24 Box 12  
Run Code Online (Sandbox Code Playgroud)

sql-server formatting trim

7
推荐指数
3
解决办法
2万
查看次数

TSQL情况,然后是语法 - 使用REPLACE

这实际上适用于先前的问题,TSQL 2008使用LTRIM(RTRIM和Still Have Spaces

我正在使用OMG PONIES语句编写一个非常冗长的SELECT语句来删除NON NULL非可见字符

 (WHEN PropStreetAddr is NOT NULL THEN
    (SELECT LTRIM(RTRIM((REPLACE(PropStreetAddr, 
                                 SUBSTRING(PropStreetAddr, 
                                           PATINDEX('%[^a-zA-Z0-9 '''''']%', 
                                           PropStreetAddr), 
                                 1), '') AS PropStreetAddr)
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT 
  CASE WHEN LOAN_NUMBER IS NOT NULL THEN 
     REPLACE( LOAN_NUMBER,SUBSTRING (LOAN_NUMBER,PATINDEX( ' %[^a-zA-Z0-9 '''''']% ' , ' ' ) as LOAN_NUMBER.
 ,CASE WHEN MERS_ID IS NOT NULL THEN 
     REPLACE(  MERS_ID,SUBSTRING (MERS_ID,PATINDEX( '  %[^a-zA-Z0-9 '''''']% ' , ' ' ) as MERS_ID 
 ...127 more lines of similar statements
Run Code Online (Sandbox Code Playgroud)

一旦我检查语法,我收到此错误指向SELECT后的第一个Case语句:

消息156,级别15,状态1,行143关键字'as'附近的语法不正确.

有人能帮我理解我错过的东西吗?

sql t-sql sql-server string

2
推荐指数
1
解决办法
4684
查看次数

TSQL只需要返回一个月的最后一天,如何删除年,月和时间?

我正在T-SQL中编写一个函数,无论日期输入如何,都会返回该月的最后一天.

这是我的代码:

Alter Function dbo.FN_Get_Last_Day_in_Month2
(@FN_InputDt    Datetime)
Returns smalldatetime
as 
Begin

Declare @Result  smalldatetime
Set    @Result =

       case when @FN_InputDt <> 01-01-1900 then 
       DATEADD(m, DATEDIFF(M, 0,@FN_InputDt)+1, -1)
       Else 0 End

Return @Result

End 
Run Code Online (Sandbox Code Playgroud)

代码无法正常工作,这是一个显示不良行为的测试:

SELECT dbo.fn_get_last_day_in_month (07-05-2010)
Run Code Online (Sandbox Code Playgroud)

这是(不正确的)结果:

2010-07-31 00:00:00
Run Code Online (Sandbox Code Playgroud)

t-sql datetime date sql-drop

1
推荐指数
1
解决办法
2614
查看次数

标签 统计

sql-server ×2

t-sql ×2

date ×1

datetime ×1

formatting ×1

sql ×1

sql-drop ×1

string ×1

trim ×1