2017-10-09 19 views
0

我有一列包含表中的這些值。選擇包含特定條件的語句

Colum1: dhd-29229 Table: Test 
     dhd-29199 
     dhd-00011 

我的目標是編寫一個選擇SQL語句將返回以下值:所有數值並沒有考慮到dhd-

+0

指定期望的結果也是如此。 – jarlh

+0

您正在使用哪個[DBMS](https://en.wikipedia.org/wiki/DBMS)產品? Postgres的?甲骨文? 「_SQL_」只是一種查詢語言,而不是特定數據庫產品的名稱。 –

回答

2

使用like

where column1 like '%29229' 
+0

什麼是價值是0001,我試圖想出一個解決方案,使用子字符串和charIndex –

+0

@ YvesGuyon。 。 。我試圖回答你實際問到的問題。如果你有另一個問題,你應該問*另一個問題。 「像」是解決這個問題的最好方法。 –

0

如果你想正好在這種格式XXX-29199,你必須使用:

where column1 like '___-29229' 

如果你想要只是29229,您可以使用:where column1 like '%29229',但在這種情況下,查詢將返回所有以「29229」結尾的值。你可以想到控制這個長度。

https://www.w3schools.com/sql/sql_like.asp

0
在T-SQL(SQL Server)的

: 選擇子(colum1,CHARINDEX( ' - ',colum1)+ 1,5)從測試

0

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