Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 заменить строки в которых первый символ равен F  [new]
sfsf
Member [скрыт]

Откуда:
Сообщений: 1022
Есть таблица ss со столбцом xx
ID xx
0 F12
1 X3.3
2 F889.99
3 Z44.99

Нужно заменить Все строки в столбце xx начинающиеся с 'F' на строку 'VV'

ID xx
0 VV
1 X3.3
2 VV
3 Z44.99
11 ноя 15, 09:59    [18398490]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
sfsf,

как делаете?
11 ноя 15, 10:06    [18398522]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
sfsf
Member [скрыт]

Откуда:
Сообщений: 1022
SELECT * FROM aaaa WHERE xx=SUBSTR('F',1)
11 ноя 15, 10:18    [18398591]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
sfsf
Member [скрыт]

Откуда:
Сообщений: 1022
UPDATE xx SET xx='vv' WHERE xx=SUBSTR('F',1)
11 ноя 15, 10:24    [18398632]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
Добрый Э - Эх
Guest
sfsf,

про LIKE почитай
ну и SUBSTR нужно к полю применять, а не к константе
11 ноя 15, 10:32    [18398680]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
sfsf
UPDATE xx SET xx='vv' WHERE xx=SUBSTR('F',1)

sfsf
SELECT * FROM aaaa WHERE xx=SUBSTR('F',1)

И какой результат?
Функции SUBSTR в сиквеле нет, а у функции SUBSTRING три параметра, а не два
Хелп бы открыли, что ли.
11 ноя 15, 10:42    [18398724]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
sfsf
Member [скрыт]

Откуда:
Сообщений: 1022
сори не указал, что это MS foxpro 9
11 ноя 15, 10:49    [18398758]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
Glory
Member

Откуда:
Сообщений: 104760
sfsf
сори не указал, что это MS foxpro 9

А MSSQL тут причем ?
11 ноя 15, 10:56    [18398796]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
sfsf,

все равно синтаксис неверный, хоть VFP, хоть еще что.
11 ноя 15, 11:15    [18398884]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
Добрый Э - Эх
Guest
Владислав Колосов,

да синтаксис-то , может, и верный. а вот семантика - хромает, конечно...
11 ноя 15, 11:18    [18398896]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
sfsf
сори не указал, что это MS foxpro 9
Тогда задайте вопрос в форуме по MS foxpro
Ну и вряд ли даже в MS foxpro можно получить правильный результат, передавая в функцию константы, а не поля.
11 ноя 15, 11:30    [18398956]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
sfsf
Member [скрыт]

Откуда:
Сообщений: 1022
может кто нибудь осмелится написать свое решение?
11 ноя 15, 11:45    [18399042]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
sfsf
может кто нибудь осмелится написать свое решение?

Не осмелимся, мы не знаем MS foxpro. И я лично не хочу узнавать, лезть в хелп - тем более, что даже вы этого не хотите :-)
alexeyvg
Тогда задайте вопрос в форуме по MS foxpro
11 ноя 15, 11:56    [18399106]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
o-o
Guest


К сообщению приложен файл. Размер - 39Kb
11 ноя 15, 11:56    [18399109]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
o-o
Guest
alexeyvg
Тогда задайте вопрос в форуме по MS foxpro

лучший способ понять, что MS SQL Server <> MS foxpro,
это запустить работающий код у себя.
и сделать выводы.
я потому и дарю ответ картинкой,
а то еще товарищ не поверит, что это работает.
теперь осталось осознать, где именно работает и где надо спросить
11 ноя 15, 12:01    [18399138]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
правильный проходящий.
Guest
sfsf
может кто нибудь осмелится написать свое решение?
А задлянафига? Облегчить очередному халявщику, не потрудившемуся даже функцию Substr() изучить?

ps: для остальных участников: команда и для фокса, и для t-sql будет одна и та же с разницей только в написании имени функции substr() и substring() соответственно.
11 ноя 15, 12:02    [18399148]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
правильный проходящий.
и для t-sql будет одна и та же с разницей только в написании имени функции substr() и substring() соответственно
В TSQL значительно лучше LIKE
11 ноя 15, 12:04    [18399156]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31430
правильный проходящий.
ps: для остальных участников: команда и для фокса, и для t-sql будет одна и та же с разницей только в написании имени функции substr() и substring() соответственно.
Я это подозревал :-)
o-o
я потому и дарю ответ картинкой,
Как же так? Может, ему ещё текст прикажете набирать руками???
Нужно, что бы просто скопировать, не читая, и лаба сдана!
11 ноя 15, 12:04    [18399163]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Здесь речь идет о незнании азбуки, а не о логической задаче... Справку читать надо.
11 ноя 15, 12:07    [18399182]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
create table #test
(id int not null identity(1,1),xx char(20))
insert #test values('F12')
insert #test values( 'F889,99')
insert #test values('X3,3')
insert #test values('Z44,99' )



update #test 
set xx=case When left(xx,1)='F' then 'vv' else xx end 
11 ноя 15, 12:12    [18399212]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
o-o
Guest
правильный проходящий.
для остальных участников: команда и для фокса, и для t-sql будет одна и та же с разницей только в написании имени функции substr() и substring() соответственно.

для остальных участников:
проходящий не очень правильный.
в варианте с substring() напрочь исключен поиск по индексу.

К сообщению приложен файл. Размер - 51Kb
11 ноя 15, 12:12    [18399220]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
o-o
Guest
yaxta
create table #test
(id int not null identity(1,1),xx char(20))
insert #test values('F12')
insert #test values( 'F889,99')
insert #test values('X3,3')
insert #test values('Z44,99' )



update #test 
set xx=case When left(xx,1)='F' then 'vv' else xx end 

молодец.
если в таблице триллион записей,
и ни одной удовлетворяющей условию,
то мы не только индекс пошлем в .опу,
мы еще и проапдэйтим всю таблицу.
11 ноя 15, 12:17    [18399239]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Выражения не оптимизируются по seek любым SQL.

Однако, в фоксе есть хитрость в использовании = и == и SET EXACT .
11 ноя 15, 12:18    [18399242]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
yaxta
Member

Откуда: азербайджан,баку
Сообщений: 518
мы еще и проапдэйтим всю таблицу.[/quot]


автор не так хочет?
или что проблема ?
11 ноя 15, 12:23    [18399270]     Ответить | Цитировать Сообщить модератору
 Re: заменить строки в которых первый символ равен F  [new]
o-o
Guest
yaxta
o-o
мы еще и проапдэйтим всю таблицу.



автор не так хочет?
или что проблема ?

ну вот и запусти на триллионной таблице.
потом расскажешь, сколько ждал

и да, автор хочет не так.
он хочет только определенные строки проапдейтить.
их может быть 1-2
11 ноя 15, 12:26    [18399287]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить