我在表ColA,ColB中有1列,我想在其中存储一些值。还有另一个表,我正在从中选择信息,并将其插入到此表中。ColA有VARCHAR(25)长度,ColB也有VARCHAR(25)长度。现在I an抓取的数据大于分配的长度。假设它有35个字符,如何在ColA中拆分并选择25个字符,在ColB中选择其余字符?问这样的问题真的是一种糟糕的做法还是糟糕的方式?
INSERT INTO Master_Table
SELECT Val AS ColA, NULL AS ColB FROM Child_Table希望我已经解释了我要找的是什么。
发布于 2020-04-15 17:33:55
您可以使用字符串函数:
INSERT INTO Master_Table(ColA, ColB)
SELECT
SUBSTR(Val, 1, 25), -- the first 25 characters of the string
SUBSTR(Val, 26) -- the reminder (if any)
FROM Child_TableSUBSTR()的三参数形式允许您定义起点和要获取的字符数。双参数形式获取从给定位置到字符串末尾的所有内容。如果起始点大于字符串的长度,则返回一个NULL值。
发布于 2020-04-15 17:34:01
这很可能是一种糟糕的做法。
使用SUBSTR,例如
insert into master_table (cola, colb)
select substr(input_value, 1, 25), --> first 25 characters go to COLA
substr(input_value, 26) --> the rest goes to COLB
from another_table;https://stackoverflow.com/questions/61225469
复制相似问题