ホームページ >データベース >mysql チュートリアル >SQLのiif文の詳しい説明
[はじめに] IIf は、論理テストによって決定された 2 つの数値または文字列値のうちの 1 つを返します。 構文 Numeric IIf(«論理式», «数値式1», «数値式2») If «Logica
IIf
論理テストによって決定された 2 つの数値または文字列値の 1 つを返します。
構文
数値
IIf(«Logical Expression», «Numeric Expression1», «Numeric Expression2»)
「論理式」が TRUE の場合、この関数は「数値式 1」を返し、それ以外の場合は「数値式 2」を返します。
文字列
IIf(«Logical Expression», «String Expression1», «String Expression2»)
「論理式」が TRUE と評価された場合、この関数は「文字列式 1」を返し、それ以外の場合は「文字列式 2」を返します。
注意事項
この式は、「論理式」の値が 0 の場合にのみ FALSE とみなされます。他の値はすべて TRUE として解釈されます。
Iif 関数を使用して、検索条件に基づいてメンバーのコレクションを作成することはお勧めできません。代わりに、Filter 関数を使用して、指定されたコレクションの各メンバーを論理式に対して評価し、メンバーのサブコレクションを返します。
例
Number
次の例は、Measures.CurrentMember が空のセルの場合は 0 を返し、それ以外の場合は 1 を返します:
IIf(IsEmpty(Measures.CurrentMember), 0, 1)
String
Measures.CurrentMember が空のセルの場合、次の文字列は文字列 "Yes" " を返し、それ以外の場合は文字列を返します。文字列 "No" が返されます:
IIf(IsEmpty(Measures.CurrentMember), "Yes", "No")
Access では、IIF 関数を統計的な要約に使用できます。たとえば、実際の手数料を知ることができます。ユーザー数:
Select sum(iif(amount>0, 1,0)) as num from 料金
SQL Server には対応する関数がないようです、私は使用します:
select sum(case) when amount >0 then 1 else 0 end) as num from コスト
はあまり直感的ではないようですが、他の方法はあるのかな
case when ....then else end
例:
select id,case when bz='1' then xx when bz='2' then yy else zz end as tt from xxx
MIDはどうですか、左など? SQLでどうやって使うのでしょうか?
MID は SQL の部分文字列です
LEFT は SQL の LEFT です
たとえば、部分文字列 (フィールド、開始位置、長さ)
left (フィールド、長さ)
SUBSTRING (式、開始、長さ)
パラメータ
式
文字列、バイナリ文字列、テキスト、イメージ、列、または列を含む式です。集計関数を含む式は使用しないでください。
start
は、部分文字列の開始位置を指定する整数です。
length
は、部分文字列の長さ (返される文字数またはバイト数) を指定する整数です。
LEFT
文字列の左側から指定された数の文字を返します。
構文
LEFT ( character_expression , integer_expression )
パラメータ
character_expression
文字またはバイナリデータ式。 Character_expression には、定数、変数、または列を指定できます。 Character_expression は、暗黙的に varchar に変換できるデータ型である必要があります。それ以外の場合は、CAST 関数を使用して、character_expression を明示的に変換します。
integer_expression
は正の整数です。 integer_expression が負の場合、空の文字列が返されます。
戻り値の型
varchar
上記は SQL の iif ステートメントの詳細な説明です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。