IF
を使用してクエリを作成したいと思いますが、このクエリは何が問題なのですか?IF条件が正しく動作しない
SELECT
IF(Emp.Name is not null)
((Emp.Name) + '_' + (Emp.LastName)) as ID
else
Emp.ID
私はこのエラーを取得する:
Incorrect syntax near the keyword 'IF'.
それはなぜですか?
ありがとうございます。
IF
を使用してクエリを作成したいと思いますが、このクエリは何が問題なのですか?IF条件が正しく動作しない
SELECT
IF(Emp.Name is not null)
((Emp.Name) + '_' + (Emp.LastName)) as ID
else
Emp.ID
私はこのエラーを取得する:
Incorrect syntax near the keyword 'IF'.
それはなぜですか?
ありがとうございます。
あなたはCASE EXPRESSION
使用することができます:SQL-Serverの(私は、連結構文によって仮定)で異なって行われ
SELECT CASE WHEN emp.name is not null THEN emp.name + '_' + emp.lastName
ELSE Emp.id
END as [ID]
FROM ...
IF()
、意味
IF (Condition)
SQL STATEMENT
ELSE
SQL STATEMENT
をあなたが全体の選択を実行する必要があります各ブロックでIF()
のあなたの種類は、あなたがCASE
句でこれを実行する必要がIF(Condition , THEN , ELSE)
は、MySQLで使用されます。
SELECT
CASE WHEN (Emp.Name IS NOT NULL)
THEN ((Emp.Name) + '_' + (Emp.LastName))
ELSE
Emp.ID
END as ID
IF..ELSE
構文は多少異なります:それはSQLサーバーベースだと仮定すると、
IF(Emp.Name IS NOT NULL)
SELECT ((Emp.Name) + '_' + (Emp.LastName)) AS ID
ELSE
SELECT Emp.ID AS ID
あなたの構文でこれを使用してください:
SELECT CASE <variable> WHEN <value> THEN <returnvalue>
WHEN <othervalue> THEN <returnthis>
ELSE <returndefaultcase>
END AS <newcolumnname>
FROM <table>
usinf IFではなく、CASEをSELECT文で使用できます。このようなもの
SELECT
CASE Emp.Name
WHEN NULL THEN Emp.ID
ELSE CONCAT(CONCAT(Emp.Name,'_'),Emp.LastName)
END AS "ID"
FROM Emp;
希望します。
このケースをチェックするMySQL: CASE Function
SQL ServerまたはMySQL? –
SQLには「IF」はありません。あなたがしようとしていることを教えてください。サンプルテーブルのデータと予想される結果を追加します。 – jarlh
構文は 'SELECT IF(condition、iftrue、iffalse)AS colname'です。[リンク](https://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html) – user5226582