Pregunte a los expertos: ¿Cómo convertir las siguientes especificaciones de medicamentos usando SQL?
Si realmente deseas realizar la conversión, también puedes usar instr para buscar la palabra "pieza" y luego buscar el símbolo "*". Para evitar la situación de 12 piezas * 0,25 g, también puedes comparar las dos. Si la posición de la pieza es menor que *, comience desde el principio. Si la posición de la pieza de ajedrez es mayor que *, comienza desde la posición de *+65438.
Utilizo la función de Oracle instr para localizar y substr para interceptar. Si no es Oracle, encontraré la función correspondiente yo mismo.
Situación cuando instr(campo de especificación, '*') > Instr(campo de especificación, 'pieza') y luego substr(campo de especificación, 1, Instr(campo de especificación, 'pieza')) p>
Cuando instr(campo de especificación, '*') < Instr(campo de especificación, 'pieza') y luego substr(campo de especificación, '*')+1, Instr(campo de especificación, 'pieza')-instr(campo de especificación , '*') end
La siguiente parte también puede ser directamente else substr(campo de especificación, instr(campo de especificación, '*)+1, instr(campo de especificación, 'chip')-instr( especificación campo, ' *)), lo escribí para comprender la relación lógica.
Por supuesto, es posible que algunas instrucciones no escriban la palabra "pieza", así que busca la letra "G" y asegúrate de seguir el contenido. Si la posición de G es mayor que "*", entonces la pieza estará delante de "*", en caso contrario estará detrás.
No escribí una declaración completa, solo un juicio de caso, porque la declaración completa no se puede transmitir en absoluto.