コード値等で、”001″となっている値を、”1″として出力するには、CAST関数でSIGNED/UNSIGNEDを指定して数値型にする方法があります。
SIGNED/UNSIGNEDは正負の値の有無があり、範囲は以下のようになります。
・SIGNED:INTEGERで正負の値(-2147483648 ~ 2147483647)
・UNSIGNED:INTEGERで正の値(0 ~ 4294967295)
目次
UNSIGNED
正数になりうる値をキャストします。
1 |
SELECT cast('001' as UNSIGNED); |
⇒1
マイナスがあるのに、UNSIGNEDを指定すると誤った値にCASTされます。
マイナスが付く場合は、SIGNEDを指定します。
1 |
SELECT cast('-001' as UNSIGNED); |
⇒18446744073709551615
SIGNED
正負どちらでもキャストされます。
1 |
SELECT cast('001' as SIGNED); |
⇒1
1 |
SELECT cast('-001' as SIGNED); |
⇒-1
文字列を含む場合
値に文字列を含む場合、文字列以降は除外されて出力されます。
1 |
SELECT cast('001A' as SIGNED ) |
⇒1
1 |
SELECT cast('0010A' as SIGNED ) |
⇒10
1 |
SELECT cast('0010A10' as SIGNED ) |
⇒10
1 |
SELECT cast('00A10' as SIGNED ) |
⇒0
コメント