我有一列包含表中的這些值。選擇包含特定條件的語句
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_」只是一種查詢語言,而不是特定數據庫產品的名稱。 –