我有一列包含表中的这些值。选择包含特定条件的语句
Colum1: dhd-29229 Table: Test
dhd-29199
dhd-00011
我的目标是编写一个选择SQL语句将返回以下值:所有数值并没有考虑到dhd-
我有一列包含表中的这些值。选择包含特定条件的语句
Colum1: dhd-29229 Table: Test
dhd-29199
dhd-00011
我的目标是编写一个选择SQL语句将返回以下值:所有数值并没有考虑到dhd-
使用like
:
where column1 like '%29229'
什么是价值是0001,我试图想出一个解决方案,使用子字符串和charIndex –
@ YvesGuyon。 。 。我试图回答你实际问到的问题。如果你有另一个问题,你应该问*另一个问题。 “像”是解决这个问题的最好方法。 –
如果你想正好在这种格式XXX-29199,你必须使用:
where column1 like '___-29229'
如果你想要只是29229,您可以使用:where column1 like '%29229'
,但在这种情况下,查询将返回所有以“29229”结尾的值。你可以想到控制这个长度。
: 选择子(colum1,CHARINDEX( ' - ',colum1)+ 1,5)从测试
SUB_STRING如果你想有一个严格的“数字只有”不经格式或不一致的答复......试着写一个UDF:
Create FUNCTION [test].[numOnly]
(@text nvarchar (max))
RETURNS nvarchar (max)
AS
BEGIN
DECLARE
@char nvarchar(1),
@i_idx int,
@temp int,
@out nvarchar(max)
While len(@text) > 0
Begin
Set @char = left(@text,1)
if ascii(@char) between 49 and 57
set @out = isnull(@out,'') + @char
Set @text = RIGHT(@text,len(@text)-1)
End
Return @out
END
使用它这样...
select [test].[numOnly]('44--(*)"*()£hllk564kkj3') as 'lala'
结果:445643
指定期望的结果也是如此。 – jarlh
您正在使用哪个[DBMS](https://en.wikipedia.org/wiki/DBMS)产品? Postgres的?甲骨文? “_SQL_”只是一种查询语言,而不是特定数据库产品的名称。 –