SQL服务器调试

时间:2016-05-24 21:41:54

标签: sql-server-2008 tsql

我正在尝试通过删除前一个空格中的所有内容来格式化我的表中的licenseenum列,并且我还想删除licenseenum列中的任何字符,从' - '开始,包括' - '

例如:
Licenseenum GA 350-0中的当前数据 我想要得到什么350

这是我的代码

select Licenseenum, SUBSTRING (Licenseenum, 4, LEN(Licenseenum)-1)
from licensee

这个结果 350-0

如何从结果中删除-0?

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

尝试这样

DECLARE @YourString VARCHAR(100)='GA 350-0';

SELECT SUBSTRING(@YourString,CHARINDEX(' ',@YourString,1),CHARINDEX('-',@YourString,1)-CHARINDEX(' ',@YourString,1));

更新1

这是完全相同的,但最好阅读

DECLARE @YourString VARCHAR(100)='GA 350-0';

WITH Positions AS
(
    SELECT CHARINDEX(' ',@YourString,1) AS posBlank
          ,CHARINDEX('-',@YourString,1) AS posMinus  
)
SELECT SUBSTRING(@YourString,posBlank,posMinus-posBlank)
FROM Positions;

更新2避免前导空白......

我的逻辑需要小幅修正才能在数字前删除空白:

SELECT SUBSTRING(@YourString,posBlank+1,posMinus-posBlank-1)

与第一个例子相同......

答案 1 :(得分:1)

请尝试以下代码。它在SQL Server 2012中运行良好。

	
<!DOCTYPE html>
<html>
<title>W3.CSS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
<body class="w3-container">

<h2>Image in a Circle</h2>
<p>You do not need boostrap, you can use w3-schools libraries instead</p>

<img src="http://i.stack.imgur.com/schtq.png" class="w3-circle" alt="" style="width:50%">

</body>
</html>