programing

sql에 두 개의 varchar를 곱하다

shortcode 2022. 9. 6. 23:57
반응형

sql에 두 개의 varchar를 곱하다

시도했지만 오류가 발생했습니다.

MariaDB [test]> create table table1 (length varchar, breadth varchar);                                                             
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' breadth varchar)' at line 1
MariaDB [test]> create table table1 (length varchar(20), breadth varchar(20));                                                         
Query OK, 0 rows affected (0.06 sec)
MariaDB [test]> insert into table1 (length, breadth) values ('12','11');                                                                                                                               
Query OK, 1 row affected (0.05 sec)                                                                                                                                                                    

MariaDB [test]> select * from table1;                                                                                                                                                                  
+--------+---------+                                                                                                                                                                                   
| length | breadth |                                                                                                                                                                                   
+--------+---------+                                                                                                                                                                                   
| 12     | 11      |                                                                                                                                                                                   
+--------+---------+                                                                                                                                                                                   
1 row in set (0.02 sec)                                                                                                                                                                                                                                                                                                                                                                                   
MariaDB [test]> select convert (int, length)*convert(int, breadth) as T from table1;                                                                                                                   
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'int, length)*convert(int, breadth) as T fr
om table1' at line 1                                                                                                                                                                                   
MariaDB [test]> select convert(int, length)*convert(int, breadth) as T from table1;                                                                                                                    
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'int, length)*convert(int, breadth) as T fr
om table1' at line 1                                                                                                                                                                                   

사용하다cast():

select cast(length as int) * cast(breadth as int) as T
from table1;  

설명서에서 설명한 바와 같이convert()는, 다른 문자 세트간에 변환하기 위한 것입니다.MySQL(및 MariaDB)의 용도를 혼동하고 있습니다.convert()SQL Server를 사용할 수 있습니다.

그나저나, 당신은 심지어 명시적인 것조차 필요 없다.cast()(최소한 MySQL에서는).엔진은 암묵적인 캐스트를 수행합니다.

select length * breadth as T from table1;  

이것은 지원되지만, 저는 암묵적인 캐스팅에 의존하는 것을 별로 옹호하지 않습니다.

SQL 바이올린입니다.

언급URL : https://stackoverflow.com/questions/32654617/multiply-two-varchars-in-sql

반응형