基于用户输入的子字符串长度

时间:2017-09-07 23:04:38

标签: sql sql-server sql-server-2008

不允许用户输入少于3个字符的内容。我正在寻找能够获得2个字符或更少3个字符长度的子字符串的东西。

之类的东西
`Tes -> Tes
Test -> Tes
TestN -> Tes
TestNa -> Test
TestNam -> TestN
TestName -> TestNa`

我已经尝试过以下但是当传入的字符串是3或4个字符时它不起作用,它会切成3个1和4个到2个字符的数字但是不能想到更好的方法来实现上述< / p>

'name like SUBSTRING (+ @TestName,1,len(@TestName)-2)`

任何帮助?

1 个答案:

答案 0 :(得分:2)

在表达式中加入了一点CASE

Declare @YourTable Table ([String] varchar(50))
Insert Into @YourTable Values 
 ('Tes')
,('Test')
,('TestN')
,('TestNa')
,('TestNam')
,('TestName')

Select *
      ,Left(String,case when Len(String)<=4 then 3 else Len(String)-2 end)
 from @YourTable

<强>返回

String      (No column name)
Tes         Tes
Test        Tes
TestN       Tes
TestNa      Test
TestNam     TestN
TestName    TestNa