相关文章推荐
豪气的移动电源  ·  mysql ...·  2 月前    · 
奋斗的麦片  ·  Python ...·  1 年前    · 
读研的盒饭  ·  web.config 檔案 | ...·  2 年前    · 
Column1           Column2
Butuan Cit        y Philippines
Zamboanga         City Philippines
Manila Cit        y Philippines
    
1 个评论
你想在第2栏中加入Y?
sql
sql-server
sql-server-2008
Ryan Abarquez
Ryan Abarquez
发布于 2015-12-15
4 个回答
Tim Biegeleisen
Tim Biegeleisen
发布于 2015-12-15
已采纳
0 人赞同

你可以使用SUBSTRING() 函数。

SELECT SUBSTRING(Column1, 1, 10) AS Column1,
    SUBSTRING(Column1, 11, LEN(Column1) - 10) AS Column2
FROM yourtable

注意,我们不必担心在子串中使用大于Column1 ,q.v.文件中说的索引。

如果开始[第二个参数]大于值表达式中的字符数,将返回一个零长度的表达式。

如果start和length的总和大于表达式中的字符数,则返回从start开始的整个数值表达式。

如果你给了一个静态的长度,如果列值的长度增加,它就不会出现错误?比如说,如果列值是'Llanfairpwllgwyngyll',就会出现错误。
你的问题对我来说没有意义,但我相信我的答案是可行的,不需要借助于LEFT() ,也不需要借助于SUBSTRING() 以外的任何辅助函数。
Pரதீப்
Pரதீப்
发布于 2015-12-15
0 人赞同

使用LEFTSUBSTRING 字符串函数。试试这个

DECLARE @str VARCHAR(100) = 'Zamboanga City Philippines'
SELECT LEFT (( @str ), 10),
       Substring (( @str ), 10 + 1, Len(@str)) 
    
japzdivino
japzdivino
发布于 2015-12-15
0 人赞同

你可以使用LEFT,LEN, 和SUBSTRING

SELECT LEFT(Column1,10) AS 'Column1'
SELECT SUBSTRING(Column1, LEN(LEFT(Column1,10)) + 1, LEN(Column1)) AS 'Column2'

合并这两个查询。

SELECT LEFT(Column1,10) AS 'Column1', 
       SUBSTRING(Column1, LEN(LEFT(Column1,10)) + 1, LEN(Column1)) AS 'Column2'
    
Geeky Ninja
Geeky Ninja
发布于 2015-12-15
0 人赞同

你可以使用SQL的内建SUBSTRING()函数来实现你的预期结果。

IF (LEN(Column1) > 10)