如果UserName只有数字,则此查询将更新一列。
UPDATE [dbo].[MyTable]
SET [MyColumn] = CAST(CASE
WHEN UserName LIKE '%[^0-9]%'
THEN 0
ELSE 1
END AS BIT)
我需要将其重新翻译为postgreSql。它一定是类似于这个的东西
UPDATE "MySheme"."MyTable"
SET "MyColumn" = CAST(CASE
WHEN "UserName" LIKE '%[^0-9]%'
THEN 0
ELSE 1
END AS BIT)
考虑:
update mytable
set mycolumn = (username !~ 'd')::int::bit
如果username
不包含任何数字,则生成1
的bit
值,否则为0
。
请注意,Postgres支持boolean
数据类型,这在这里可能更有意义。这也只是一个简单的查询:
update mytable
set mycolumn = (username !~ 'd')
请注意,我没有引用标识符。引用的标识符通常不会增加任何值,并且会使查询变得不必要地冗长——我建议您在设置中避免使用它们。