2017-08-09 20 views
0
SELECT 
    Machine_number, 
    Week_number, 
    (LEFT(machine_dim.SUB_TYPE, charindex(' ', machine_dim.SUB_TYPE) - 1)) 
    AS Machine_type, 
and so on .... 

誰かがSUB_TYPE列のスペースの前に単語を抽出するのを助けることができますか?上記の構文は機能しません。私はSQLクエリとスーパー良いではない、ヘルプは本当に感謝します。SQLの文字列の最初の単語を抽出します

+0

'SUB_TYPE'には何がありますか? –

+2

MySQLにタグが付けられているのはなぜですか? MySQL doenstはcharindex関数をサポートしています。 –

+2

OracleかMySQLですか? – I3rutt

答えて

0

SUBSTR()関数でLOCATE()関数を使用できます。例えば

SELECT Machine_number, Week_number, 
SUBSTR(machine_dim.SUB_TYPE, 1, LOCATE(' ' ,machine_dim.SUB_TYPE)) AS Machine_type 

も並べ替えるには、次の形式を使用し、スペースなしで完全な単語を記録します。この構文は、いくつかのSGBD(SQL Serverでサポートされない可能性があること

SELECT Machine_number, Week_number, 
CASE LOCATE(' ',machine_dim.SUB_TYPE) 
    WHEN 0 THEN machine_dim.SUB_TYPE 
    ELSE SUBSTR(machine_dim.SUB_TYPE, 1, LOCATE(' ' ,machine_dim.SUB_TYPE)) 
END AS Machine_type 

注意、Firebirdなど)。

希望これは、SQL Serverでは

+0

おかげ..Thisがうまく機能しています。しかし、スペースがないときは値が表示されません。これを修正する方法は知っていますか? – Raj

+0

スペースなしのレコードも含めるようにフォームで回答を更新しました。 – Theforgotten

1

を支援します。

標準SQLのIN
 DECLARE @text varchar(100)='Why is MySQL tagged' 
     SELECT left(@text,charindex(' ',@text)) 

     Output : 
       Why 
0

、それは例の下に使用して達成することができます。

SELECT SUBSTRING("RAJ KIRAN", 1, POSITION(" " IN "RAJ KIRAN")) AS OutputString; 

ハードコードされた値「RAJ KIRAN」を列名に置き換えます。 ありがとう

関連する問題