如何删除字符串中特定字段的引号?

时间:2018-07-19 05:24:40

标签: php sql-server

我想从引号之间有整数的特定字段中删除引号。

从这一行开始:“ AAA”,“ 99”

此行:“ AAA”,99

这是我的字符串:

require

2 个答案:

答案 0 :(得分:3)

1)用','分割成表格。 (我使用的是string_split,在MSSQL 2016+中受支持-在早期的SQL版本中,有许多方法可以implement split functions。)
2)使用REPLACE(value,'“','')和ISNUMERIC找出哪些值是数字。
3)使用FOR XML PATH/STUFF重新添加逗号。

DECLARE @str VARCHAR(25) = '"name","99","email","112"'

SELECT STUFF(
(
    SELECT ',' + 
        CASE 
            WHEN ISNUMERIC(REPLACE(value, '"', '')) = 1 
                THEN REPLACE(value, '"', '') 
            ELSE value 
        END
    FROM STRING_SPLIT(@str, ',')
    FOR XML PATH('')
), 1, 1, '')

返回:

"name",99,"email",112

答案 1 :(得分:1)

$string = '"name","99","email","112"';

$string = str_replace('"', '', $string);

$strings = explode(",", $string);

foreach($strings as $key => $string) {
    $strings[$key] = preg_match('/^[0-9]*$/', $string) 
        ? intval($string) : '"'.$string.'"';
}

$string = implode(",",$strings)