SQL 不接受正字符串

SQL does not take in positive strings

我正在使用 SQL Server 2012。我有一个陷阱,我得到负号并将其放在我的设置字符串中的值的前面,但是也有一些值没有减号,它们在我的专栏中显示为空值。 我需要一种不接受这些正值的方法,因为这是一个标准程序,我只需要查询中的负值。

我的密码是

CASE 
   WHEN CHARINDEX('-', SUBSTRING([Txt], 147, 10)) > 0   
      THEN '-' + REPLACE(LTRIM(RTRIM(SUBSTRING([TXT], 147, 9))), ',','') 
END AS [Open_Amount] 

在我的查询中,正值显示为我不想要的“空值”,如果 open_amount 是正值,我希望忽略整行。我可以在我的案例中添加一个特定的 else 语句还是有其他方法?如果它有助于使用 views/cross applys 不幸的是这个数据结构不是一个选项

这是你想要的吗?

(case when Substring([Txt], 147, 10) like '%-%' 
      then '-' + Replace(LTrim(RTRIM(Substring([TXT], 147, 9))), ',', '') 
      else Replace(LTrim(RTRIM(Substring([TXT], 147, 9)))
 end) as [Open_Amount]
from db.txt

如果您只想保留负数行,请使用:

where substring([Txt], 147, 10) like '%-%'