我在SQL视图中有各种值,格式如下:
SoftwareName_Language_Architecture_Type_Version_ {GUID} _INSTALL.Log
例如:Java-v6.27_ALL_x86_MSI_pV1.0_{26A24AE4-039D-4CA4-87B4-2F86416027FF}_INSTALL.Log
我希望这个结果出现在不同的列中:
SoftwareName
Architecture
Language
我使用各种函数_
,RIGHT
,LEFT
,CHARINDEX
和所有函数来处理多个TRIM
个字符。
答案 0 :(得分:1)
这在SQL中很难做到,因为没有split函数。在其他编程语言中很容易做到。我考虑将SQL的输出放入文件中,然后使用python等编程语言处理该文件,例如:
>>> field='Java-v6.27_ALL_x86_MSI_pV1.0_{26A24AE4-039D-4CA4-87B4-
>>> print '\n'.join(field.split('_'))
Java-v6.27
ALL
x86
MSI
pV1.0
{26A24AE4-039D-4CA4-87B4-2F86416027FF}
INSTALL.Log
或者在Bash中
echo 'Java-v6.27_ALL_x86_MSI_pV1.0_{26A24AE4-039D-4CA4-87B4-2F86416027FF}_INSTALL.Log'|sed "s/_/\n/g"
Java-v6.27
ALL
x86
MSI
pV1.0
{26A24AE4-039D-4CA4-87B4-2F86416027FF}
INSTALL.Log
你可以从命令行执行SQL和bash,如下所示:
cat getstuff.sql | mysql -uuser -ppass -hhost db | sed "s/_/\n/g"